]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Merge branch 'master' of ssh://git.ipfire.org/pub/git/ipfire-2.x into install-raid
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 30 Aug 2014 08:46:11 +0000 (10:46 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 30 Aug 2014 08:46:11 +0000 (10:46 +0200)
345 files changed:
config/dracut/dracut.conf [new file with mode: 0644]
config/etc/fstab [deleted file]
config/findutils/updatedb [new file with mode: 0644]
config/grub/grub.conf [deleted file]
config/grub/ipfire.xpm.gz [deleted file]
config/grub2/default [new file with mode: 0644]
config/install/fstab [deleted file]
config/install/group [deleted file]
config/install/halt [deleted file]
config/install/hosts [deleted file]
config/install/nsswitch.conf [deleted file]
config/install/passwd [deleted file]
config/install/profile [deleted file]
config/install/rc_installer [deleted file]
config/install/shells [deleted file]
config/rootfiles/common/armv5tel/dracut [deleted file]
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/armv5tel/linux-kirkwood
config/rootfiles/common/armv5tel/linux-multi
config/rootfiles/common/armv5tel/linux-rpi
config/rootfiles/common/bash
config/rootfiles/common/cmake
config/rootfiles/common/coreutils
config/rootfiles/common/dracut [new file with mode: 0644]
config/rootfiles/common/fcron
config/rootfiles/common/findutils
config/rootfiles/common/hostname
config/rootfiles/common/i586/dracut [deleted file]
config/rootfiles/common/i586/grub
config/rootfiles/common/i586/initscripts
config/rootfiles/common/i586/linux
config/rootfiles/common/installer [new file with mode: 0644]
config/rootfiles/common/libcap
config/rootfiles/common/libsmooth [new file with mode: 0644]
config/rootfiles/common/lvm2 [new file with mode: 0644]
config/rootfiles/common/mdadm [moved from config/rootfiles/packages/mdadm with 55% similarity]
config/rootfiles/common/mktemp [deleted file]
config/rootfiles/common/multipath-tools [new file with mode: 0644]
config/rootfiles/common/newt
config/rootfiles/common/parted [moved from config/rootfiles/packages/parted with 84% similarity]
config/rootfiles/common/patch
config/rootfiles/common/pigz [new file with mode: 0644]
config/rootfiles/common/readline
config/rootfiles/common/setup
config/rootfiles/common/slang
config/rootfiles/common/xfsprogs [moved from config/rootfiles/packages/xfsprogs with 98% similarity]
config/rootfiles/installer/coreutils [deleted symlink]
config/rootfiles/installer/dhcpcd [deleted symlink]
config/rootfiles/installer/e2fsprogs [deleted symlink]
config/rootfiles/installer/files [deleted file]
config/rootfiles/installer/findutils [deleted symlink]
config/rootfiles/installer/gawk [deleted symlink]
config/rootfiles/installer/glibc [deleted symlink]
config/rootfiles/installer/grep [deleted symlink]
config/rootfiles/installer/gzip [deleted symlink]
config/rootfiles/installer/hwdata [deleted symlink]
config/rootfiles/installer/iproute2 [deleted symlink]
config/rootfiles/installer/kbd [deleted symlink]
config/rootfiles/installer/libidn [deleted symlink]
config/rootfiles/installer/libusb [deleted symlink]
config/rootfiles/installer/misc-progs [deleted file]
config/rootfiles/installer/ncurses [deleted symlink]
config/rootfiles/installer/newt [deleted symlink]
config/rootfiles/installer/openssl [deleted symlink]
config/rootfiles/installer/parted [deleted symlink]
config/rootfiles/installer/pciutils [deleted symlink]
config/rootfiles/installer/pcmciautils [deleted symlink]
config/rootfiles/installer/pcre [deleted symlink]
config/rootfiles/installer/popt [deleted symlink]
config/rootfiles/installer/reboot [deleted file]
config/rootfiles/installer/reiserfsprogs [deleted symlink]
config/rootfiles/installer/sed [deleted symlink]
config/rootfiles/installer/slang [deleted symlink]
config/rootfiles/installer/sysfsutils [deleted symlink]
config/rootfiles/installer/tar [deleted symlink]
config/rootfiles/installer/usbutils [deleted symlink]
config/rootfiles/installer/util-linux [deleted symlink]
config/rootfiles/installer/vim [deleted symlink]
config/rootfiles/installer/wget [deleted symlink]
config/rootfiles/installer/xz [deleted symlink]
config/rootfiles/installer/zlib [deleted symlink]
config/rootfiles/packages/linux-pae
config/rootfiles/packages/minidlna
doc/language_missings
langs/de/install/lang_de.c [deleted file]
langs/en/install/lang_en.c [deleted file]
langs/es/install/lang_es.c [deleted file]
langs/fr/install/lang_fr.c [deleted file]
langs/nl/install/lang_nl.c [deleted file]
langs/pl/install/lang_pl.c [deleted file]
langs/ru/install/lang_ru.c [deleted file]
langs/tr/install/lang_tr.c [deleted file]
lfs/bash
lfs/cdrom
lfs/coreutils
lfs/dracut
lfs/findutils
lfs/flash-images
lfs/grub
lfs/initrd [deleted file]
lfs/initscripts
lfs/installer
lfs/libsmooth [moved from src/install+setup/libsmooth/makelangs.pl with 60% similarity]
lfs/linux
lfs/lvm2 [moved from lfs/mktemp with 88% similarity]
lfs/mdadm
lfs/minidlna
lfs/misc-progs
lfs/multipath-tools [new file with mode: 0644]
lfs/newt
lfs/parted
lfs/patch
lfs/pigz [new file with mode: 0644]
lfs/readline
lfs/setup
lfs/slang
lfs/stage2
lfs/xfsprogs
make.sh
src/dracut/dracut.conf [deleted file]
src/dracut/switch_root.c [deleted file]
src/initscripts/init.d/firstsetup
src/initscripts/init.d/fsresize
src/initscripts/init.d/mdadm [deleted file]
src/initscripts/init.d/minidlna
src/initscripts/init.d/mountkernfs
src/initscripts/init.d/partresize
src/initscripts/init.d/tmpfs
src/install+setup/install/config.c [deleted file]
src/install+setup/install/install.h [deleted file]
src/install+setup/install/main.c [deleted file]
src/install+setup/install/mountsource.sh [deleted file]
src/install+setup/libsmooth/langs.h.temp [deleted file]
src/install+setup/libsmooth/libsmooth.h [deleted file]
src/install+setup/setup/setup.h [deleted file]
src/installer/.tx/config [new file with mode: 0644]
src/installer/Makefile [moved from src/install+setup/install/Makefile with 92% similarity]
src/installer/Makefile.am [new file with mode: 0644]
src/installer/autogen.sh [new file with mode: 0755]
src/installer/configure.ac [new file with mode: 0644]
src/installer/downloadsource.sh [moved from src/install+setup/install/downloadsource.sh with 90% similarity]
src/installer/dracut-module/70-dhcpcd.exe [new file with mode: 0755]
src/installer/dracut-module/fake-root.sh [new file with mode: 0644]
src/installer/dracut-module/module-setup.sh [new file with mode: 0755]
src/installer/dracut-module/run-installer.sh [new file with mode: 0644]
src/installer/hw.c [new file with mode: 0644]
src/installer/hw.h [new file with mode: 0644]
src/installer/install.h [new file with mode: 0644]
src/installer/m4/attributes.m4 [new file with mode: 0644]
src/installer/main.c [new file with mode: 0644]
src/installer/mountdest.sh [moved from src/install+setup/install/mountdest.sh with 100% similarity]
src/installer/po/LINGUAS [new file with mode: 0644]
src/installer/po/Makevars [new file with mode: 0644]
src/installer/po/POTFILES.in [new file with mode: 0644]
src/installer/po/ar.po [new file with mode: 0644]
src/installer/po/ca.po [new file with mode: 0644]
src/installer/po/cs_CZ.po [new file with mode: 0644]
src/installer/po/da.po [new file with mode: 0644]
src/installer/po/de.po [new file with mode: 0644]
src/installer/po/el_GR.po [new file with mode: 0644]
src/installer/po/es.po [new file with mode: 0644]
src/installer/po/fa.po [new file with mode: 0644]
src/installer/po/fr.po [new file with mode: 0644]
src/installer/po/hu.po [new file with mode: 0644]
src/installer/po/id.po [new file with mode: 0644]
src/installer/po/it.po [new file with mode: 0644]
src/installer/po/ja.po [new file with mode: 0644]
src/installer/po/km_KH.po [new file with mode: 0644]
src/installer/po/nl.po [new file with mode: 0644]
src/installer/po/pl.po [new file with mode: 0644]
src/installer/po/pt_BR.po [new file with mode: 0644]
src/installer/po/pt_PT.po [new file with mode: 0644]
src/installer/po/ro_RO.po [new file with mode: 0644]
src/installer/po/ru.po [new file with mode: 0644]
src/installer/po/sk.po [new file with mode: 0644]
src/installer/po/sq.po [new file with mode: 0644]
src/installer/po/sv.po [new file with mode: 0644]
src/installer/po/th.po [new file with mode: 0644]
src/installer/po/tk.po [new file with mode: 0644]
src/installer/po/tr.po [new file with mode: 0644]
src/installer/po/uk.po [new file with mode: 0644]
src/installer/po/uz@Latn.po [new file with mode: 0644]
src/installer/po/vi.po [new file with mode: 0644]
src/installer/po/zh.po [new file with mode: 0644]
src/installer/unattended.c [moved from src/install+setup/install/unattended.c with 94% similarity]
src/libsmooth/Makefile [moved from src/install+setup/libsmooth/Makefile with 100% similarity]
src/libsmooth/Makefile.am [new file with mode: 0644]
src/libsmooth/autogen.sh [new file with mode: 0755]
src/libsmooth/configure.ac [new file with mode: 0644]
src/libsmooth/libsmooth.h [new file with mode: 0644]
src/libsmooth/libsmooth.pc.in [new file with mode: 0644]
src/libsmooth/m4/attributes.m4 [new file with mode: 0644]
src/libsmooth/main.c [moved from src/install+setup/libsmooth/main.c with 58% similarity]
src/libsmooth/varval.c [moved from src/install+setup/libsmooth/varval.c with 100% similarity]
src/misc-progs/Makefile
src/patches/bash-3.2-ssh_source_bash.patch
src/patches/bash-4.0-paths-1.patch
src/patches/bash/bash32-001 [deleted file]
src/patches/bash/bash32-002 [deleted file]
src/patches/bash/bash32-003 [deleted file]
src/patches/bash/bash32-004 [deleted file]
src/patches/bash/bash32-005 [deleted file]
src/patches/bash/bash32-006 [deleted file]
src/patches/bash/bash32-007 [deleted file]
src/patches/bash/bash32-008 [deleted file]
src/patches/bash/bash32-009 [deleted file]
src/patches/bash/bash32-010 [deleted file]
src/patches/bash/bash32-011 [deleted file]
src/patches/bash/bash32-012 [deleted file]
src/patches/bash/bash32-013 [deleted file]
src/patches/bash/bash32-014 [deleted file]
src/patches/bash/bash32-015 [deleted file]
src/patches/bash/bash32-016 [deleted file]
src/patches/bash/bash32-017 [deleted file]
src/patches/bash/bash32-018 [deleted file]
src/patches/bash/bash32-019 [deleted file]
src/patches/bash/bash32-020 [deleted file]
src/patches/bash/bash32-021 [deleted file]
src/patches/bash/bash32-022 [deleted file]
src/patches/bash/bash32-023 [deleted file]
src/patches/bash/bash32-024 [deleted file]
src/patches/bash/bash32-025 [deleted file]
src/patches/bash/bash32-026 [deleted file]
src/patches/bash/bash32-027 [deleted file]
src/patches/bash/bash32-028 [deleted file]
src/patches/bash/bash32-029 [deleted file]
src/patches/bash/bash32-030 [deleted file]
src/patches/bash/bash32-031 [deleted file]
src/patches/bash/bash32-032 [deleted file]
src/patches/bash/bash32-033 [deleted file]
src/patches/bash/bash32-034 [deleted file]
src/patches/bash/bash32-035 [deleted file]
src/patches/bash/bash32-036 [deleted file]
src/patches/bash/bash32-037 [deleted file]
src/patches/bash/bash32-038 [deleted file]
src/patches/bash/bash32-039 [deleted file]
src/patches/bash/bash32-040 [deleted file]
src/patches/bash/bash32-041 [deleted file]
src/patches/bash/bash32-042 [deleted file]
src/patches/bash/bash32-043 [deleted file]
src/patches/bash/bash32-044 [deleted file]
src/patches/bash/bash32-045 [deleted file]
src/patches/bash/bash32-046 [deleted file]
src/patches/bash/bash32-047 [deleted file]
src/patches/bash/bash32-048 [deleted file]
src/patches/bash/bash32-049 [deleted file]
src/patches/bash/bash32-050 [deleted file]
src/patches/bash/bash32-051 [deleted file]
src/patches/bash/bash43-001 [new file with mode: 0644]
src/patches/bash/bash43-002 [new file with mode: 0644]
src/patches/bash/bash43-003 [new file with mode: 0644]
src/patches/bash/bash43-004 [new file with mode: 0644]
src/patches/bash/bash43-005 [new file with mode: 0644]
src/patches/bash/bash43-006 [new file with mode: 0644]
src/patches/bash/bash43-007 [new file with mode: 0644]
src/patches/bash/bash43-008 [new file with mode: 0644]
src/patches/bash/bash43-009 [new file with mode: 0644]
src/patches/bash/bash43-010 [new file with mode: 0644]
src/patches/bash/bash43-011 [new file with mode: 0644]
src/patches/bash/bash43-012 [new file with mode: 0644]
src/patches/bash/bash43-013 [new file with mode: 0644]
src/patches/bash/bash43-014 [new file with mode: 0644]
src/patches/bash/bash43-015 [new file with mode: 0644]
src/patches/bash/bash43-016 [new file with mode: 0644]
src/patches/bash/bash43-017 [new file with mode: 0644]
src/patches/bash/bash43-018 [new file with mode: 0644]
src/patches/coreutils-5.96-futimes.patch [deleted file]
src/patches/coreutils-5.96-i18n-1.patch [deleted file]
src/patches/coreutils-5.96-rename-tee.patch [deleted file]
src/patches/coreutils-5.96-suppress_uptime_kill_su-1.patch [deleted file]
src/patches/coreutils-5.96-uname-1.patch [deleted file]
src/patches/dracut-006_add_run_dir.patch [deleted file]
src/patches/dracut-006_lzma.patch [deleted file]
src/patches/dracut-006_remove_cdrom_wait.patch [deleted file]
src/patches/dracut-006_remove_scsi_wait.patch [deleted file]
src/patches/dracut-init_start_ipfireinstaller.patch [deleted file]
src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch [new file with mode: 0644]
src/patches/mktemp-1.5-add_tempfile-3.patch [deleted file]
src/patches/newt-0.51.6-if1close.patch [deleted file]
src/patches/readline/readline62-001 [deleted file]
src/patches/readline/readline62-002 [deleted file]
src/patches/readline/readline62-003 [deleted file]
src/patches/readline/readline62-004 [deleted file]
src/patches/readline/readline63-001 [new file with mode: 0644]
src/patches/readline/readline63-002 [new file with mode: 0644]
src/patches/readline/readline63-003 [new file with mode: 0644]
src/patches/readline/readline63-004 [new file with mode: 0644]
src/patches/readline/readline63-005 [new file with mode: 0644]
src/patches/readline/readline63-006 [new file with mode: 0644]
src/patches/slang-1.4.5-utf8-segv.patch [deleted file]
src/patches/slang-debian-utf8.patch [deleted file]
src/patches/slang-utf8-acs.patch [deleted file]
src/patches/slang-utf8-fix.patch [deleted file]
src/setup/.tx/config [new file with mode: 0644]
src/setup/Makefile [moved from src/install+setup/setup/Makefile with 96% similarity]
src/setup/Makefile.am [new file with mode: 0644]
src/setup/autogen.sh [new file with mode: 0755]
src/setup/configure.ac [new file with mode: 0644]
src/setup/dhcp.c [moved from src/install+setup/setup/dhcp.c with 78% similarity]
src/setup/domainname.c [moved from src/install+setup/setup/domainname.c with 73% similarity]
src/setup/hostname.c [moved from src/install+setup/setup/hostname.c with 76% similarity]
src/setup/keymap.c [moved from src/install+setup/setup/keymap.c with 90% similarity]
src/setup/m4/attributes.m4 [new file with mode: 0644]
src/setup/main.c [moved from src/install+setup/setup/main.c with 61% similarity]
src/setup/misc.c [moved from src/install+setup/setup/misc.c with 81% similarity]
src/setup/netstuff.c [moved from src/install+setup/libsmooth/netstuff.c with 88% similarity]
src/setup/networking.c [moved from src/install+setup/setup/networking.c with 71% similarity]
src/setup/passwords.c [moved from src/install+setup/setup/passwords.c with 65% similarity]
src/setup/po/LINGUAS [new file with mode: 0644]
src/setup/po/Makevars [new file with mode: 0644]
src/setup/po/POTFILES.in [new file with mode: 0644]
src/setup/po/ar.po [new file with mode: 0644]
src/setup/po/ca.po [new file with mode: 0644]
src/setup/po/cs_CZ.po [new file with mode: 0644]
src/setup/po/da.po [new file with mode: 0644]
src/setup/po/de.po [new file with mode: 0644]
src/setup/po/el_GR.po [new file with mode: 0644]
src/setup/po/es.po [new file with mode: 0644]
src/setup/po/fa.po [new file with mode: 0644]
src/setup/po/fr.po [new file with mode: 0644]
src/setup/po/hu.po [new file with mode: 0644]
src/setup/po/id.po [new file with mode: 0644]
src/setup/po/it.po [new file with mode: 0644]
src/setup/po/ja.po [new file with mode: 0644]
src/setup/po/km_KH.po [new file with mode: 0644]
src/setup/po/nl.po [new file with mode: 0644]
src/setup/po/pl.po [new file with mode: 0644]
src/setup/po/pt_BR.po [new file with mode: 0644]
src/setup/po/pt_PT.po [new file with mode: 0644]
src/setup/po/ro_RO.po [new file with mode: 0644]
src/setup/po/ru.po [new file with mode: 0644]
src/setup/po/sk.po [new file with mode: 0644]
src/setup/po/sq.po [new file with mode: 0644]
src/setup/po/sv.po [new file with mode: 0644]
src/setup/po/th.po [new file with mode: 0644]
src/setup/po/tk.po [new file with mode: 0644]
src/setup/po/tr.po [new file with mode: 0644]
src/setup/po/uk.po [new file with mode: 0644]
src/setup/po/uz@Latn.po [new file with mode: 0644]
src/setup/po/vi.po [new file with mode: 0644]
src/setup/po/zh.po [new file with mode: 0644]
src/setup/probenic.sh [moved from src/install+setup/install/probenic.sh with 100% similarity]
src/setup/setup.h [new file with mode: 0644]
src/setup/timezone.c [moved from src/install+setup/setup/timezone.c with 90% similarity]
tools/check_langs.sh

diff --git a/config/dracut/dracut.conf b/config/dracut/dracut.conf
new file mode 100644 (file)
index 0000000..34e6a66
--- /dev/null
@@ -0,0 +1,51 @@
+# PUT YOUR CONFIG HERE OR IN separate files named *.conf
+# in /etc/dracut.conf.d
+# SEE man dracut.conf(5)
+
+# Sample dracut config file
+
+#logfile=/var/log/dracut.log
+#fileloglvl=6
+
+# Exact list of dracut modules to use.  Modules not listed here are not going
+# to be included.  If you only want to add some optional modules use
+# add_dracutmodules option instead.
+#dracutmodules+=""
+
+# dracut modules to omit
+#omit_dracutmodules+=""
+
+# dracut modules to add to the default
+#add_dracutmodules+=""
+
+# additional kernel modules to the default
+#add_drivers+=""
+
+# list of kernel filesystem modules to be included in the generic initramfs
+filesystems+="reiserfs vfat xfs"
+
+# build initrd only to boot current hardware
+#hostonly="yes"
+#
+
+# install local /etc/mdadm.conf
+#mdadmconf="no"
+
+# install local /etc/lvm/lvm.conf
+#lvmconf="no"
+
+# A list of fsck tools to install. If it's not specified, module's hardcoded
+# default is used, currently: "umount mount /sbin/fsck* xfs_db xfs_check
+# xfs_repair e2fsck jfs_fsck reiserfsck btrfsck". The installation is
+# opportunistic, so non-existing tools are just ignored.
+#fscks=""
+
+# inhibit installation of any fsck tools
+#nofscks="yes"
+
+# mount / and /usr read-only by default
+#ro_mnt="no"
+
+# set the directory for temporary files
+# default: /var/tmp
+#tmpdir=/tmp
diff --git a/config/etc/fstab b/config/etc/fstab
deleted file mode 100644 (file)
index 0cd30eb..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# file system  mount-point  type     options         dump  fsck
-#                                                        order
-DEVICE1        /boot   ext2    defaults        1       2
-DEVICE2         swap   swap    pri=1   0       0
-DEVICE3        /       FSTYPE  defaults        1       1
-DEVICE4        /var    FSTYPE  defaults        1       1
-none   /var/log/rrd    tmpfs   defaults,size=64M       0       0
-none   /var/lock       tmpfs   defaults,size=8M        0       0
diff --git a/config/findutils/updatedb b/config/findutils/updatedb
new file mode 100644 (file)
index 0000000..6cc1886
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+[ -x "/usr/bin/updatedb" ] || exit 0
+
+LOCKFILE="/var/lib/locate/updatedb.lock"
+
+trap "rm -f $LOCKFILE" EXIT
+
+if [ -e "$LOCKFILE" ]; then
+       echo >&2 "Warning: $LOCKFILE present, not running updatedb."
+       exit 1
+else
+       touch "$LOCKFILE"
+fi
+
+/usr/bin/updatedb
diff --git a/config/grub/grub.conf b/config/grub/grub.conf
deleted file mode 100644 (file)
index 2199bf1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-timeout 10
-default saved
-foreground = 6d6963
-background = ffffff
-#hiddenmenu
-# *** If you want use serial console comment next line
-splashimage (hd0,0)/grub/ipfire.xpm.gz
-# *** add "console=ttyS0,115200n8" to kernel cmdline,
-# *** uncomment following lines and check also inittab
-#serial --unit=0 --speed=115200
-#terminal --timeout=1 serial console
-title IPFire
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 0
-title IPFire (vesafb 1024x768)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=791 MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 1
diff --git a/config/grub/ipfire.xpm.gz b/config/grub/ipfire.xpm.gz
deleted file mode 100644 (file)
index ff94776..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-/* XPM */
-static char * Bootsplash_xpm[] = {
-"640 480 14 1",
-".     c #030303",
-"+     c #171717",
-"@     c #272727",
-"#     c #383838",
-"$     c #4A4A4A",
-"%     c #575757",
-"&     c #6F6F6F",
-"*     c #888888",
-"=     c #989898",
-"-     c #A8A8A8",
-";     c #B8B8B8",
-">     c #C7C7C7",
-",     c #D7D7D7",
-"'     c #E7E7E7",
-">;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>>;>>;>>;>>>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>,>>,>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,,>,,>,,>,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,',,',,',',,',',,',',',',',',',',',',',',',',',','','','','','',''',''',''','",
-";>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>>;;>>>;>>;;>>>;;>;>;>;>;>;>;>;>;>>;>>;>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>,>,>,>,>,>,>,>,>,>,,>,,>,,>,>>,>>,>>,>>,>,>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,>,,>,,>,,>,,>,>,,>,,>,,>,,>,,,>,,,>,,,>,,,>,>,>,>,>,>,>,,>,,>,,>,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,',,',',',',',',',',','','','',',,',,',,',,',',',,',',',',,',',',',',',',',','','','','',','','','','',''',''',''','''",
-">>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>>;;>;>>>;>>;>>>;>;>;>>>;>;>>>>>;>>>;>>>;>>>>>>>;>>>>>;>>>;>>;>>;>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>,>>>,>,>,>>,>,>>,>>>,,>>,>>,>,,>>,>,>,>,>,>,>,>,,>,>,>,>,>,>,,,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,,,,>,,,,,>,,>,,,,,,,,,,,,,,,>,,>,,>,,>,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,',,',,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,',,,',',',,',',,',,,'',,',,','',,',',',',',',','',',',',',',','',',',',',',',',',',',',',''",
-";>>;>;>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>;;>>>>>;;>>;;>;>;>>>;>>>;>>>;>;>>>;>>>;>>>;>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>,>,>,>,>,>,>,>>,>>>,>,>>>,>>>>,>,>>,>,>>,>,>>,,>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>>,,>,,,>,,,>,,,>,,,,,,,,,,,,,>,>,,,,,>,,,,,,,,>,>,,>,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,',,',',',',',',',,',,,',',,,',,,,',',,',',,',',,'',',,',,',',',',',',',',',',',',',',','',''',''',''',''''''''''''','",
-";>;>>;>>;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>;>;>;;;>;>>;>;;;>>;>;>>>;>>;>>>;;>>;>>>>;>;>>;>>>;>>>>>>;>;>>>;>;>>;>>>;>>>;>>>;>>>>>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>,>>,>>>>>,>>>>>,>>>>>>>>>>>>>>,>>,>>>>,>,>>,,>>,>>,>>>,>,>,>,>>,>,,>>,>,>,>,>,>,>,>,>,>,>,,,>,>,,>,,,,>,,>>,,>,>,>,,,>,>>,>,>,>>,,,,,>,>,,,>,>,,>,,,,,,,,,,,,,,,,,,>,,,,,>,,,,,,,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,',,',,,,,',,,,,',,,,,,,,,,,,,,',,',,,,',',,'',,',,',,,',',',',,','',,',',',',',',',',',',''',','','',',',,'',,'',','',',',',',','''",
-";>;>;>;;>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>;>>>;>;>;>>>>>;>>;>;>>;>;>;>>>>;>;>;>>>>>>>>;>>>;>;>>>>>>>>>>>>>>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>,>>>>>>>>>,>>,>>,>>>>>>>,>>>>>>,>>>,>,>,>,>,>,>,>>>,>,>,>>>>,>>>,>>,>>,>,>>>,>,>,>>,>>,,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>>,>,>,,,>>,,,>,>,>,,,,>,>,,,,,,>,>,,,,>,,,,,,,>,,,>,>,,>,,>,,>,,,,,>,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,',,,,,,,,,',,',,',,,,,,,',,,,,,',,,',',',',',',',,,',',',,,,',,,',,',,'',,',,,',',,',,'',',',',',',',',',',',,'',',',',','''',''',,''',','','','','','",
-";>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>;>;>>;;>;>>>;;>;;>;>;>>;>>;>>>;>;>;>>>>>;>;>;>;>>>;>>>>>;>>;>;>>;>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>>>>>>>>>>>>>>>>>>,>>>>>>,>,>>,>,>,>,>,>,>>,>,>>,>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,,>,,,,>>,,,>,,>,>,,,,>,>,>,,,,,>,,>,>,>,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,',,,,,,,,,,,,,,,,,,,',,,,,,',',,',',',',',,,',,'',',,',',',,,',',',',',',',','','',',','',''',,'',',''','','','','','','''",
-">;>;>>;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;>;>;;>>;>;;>>;>>>;>;>>;>;>>;>;>>>;>>;>;>>;>>>>>>;>>;>>;>>>>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>>,>>>>>>>>>,>,>,>,>,>,>,>,>>,>,>,>,>>>,>>>>,>>>,>>,>,>>,>,>,,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,>,>,>,>,,,>,>,>>,,>,>,,>,,,,>,>,>,,,,,>,>,,>,,,,,,,,>,,,,,>,,>,>,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,',,,',,,,,,,,,',',',',',',',',,',',',',,,',,',,,',,,',',',,,','',',',',',,',',',',',',',',',','',','',,''',','',',',''''','','',''','",
-">;>;;>;>;>>;>>;>>;>;>>>;>>;>;>>;>>;>>;>;>>>;>>;>;>>;>>;>>;>;>>>;>>;>;>>;>>;>>;>;>>>;>>;>;>>;>>;>>;>;>>>;>>;>;>>;>>;>>;>;>>>;>>;>;>>;>>;>>;>;>>>;>>;>;>>>;>>;>;>>>;>;>>;>>>>>;>>>;>;>>>>>>;>;>>;>>>>>>>;>>;>>;>>>>;>>;>>>;>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>,>,>,>>>>>>>>>>>>>>>>>>,>>>,>>>,>,>>,>,>,>,>>,>>>,>>,>,>>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>,,,,>,,,>,,,,>,>,,,>,,>,>,,,,,>,,,>,>,>,,,,>,,,,,,,,,,>,,,,,,,,,,,,,>,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,',',',,,,,,,,,,,,,,,,,,',,,',,,',',,',,'',,'',,',,',',',,,',,',','',',',',',',','','','',',',','',,'''',','','',,''','','',''''",
-";>;>>;>;>;>;>;>;;>;>;;>;>;>;>;>;>;>;;>;>;;>;>;>;>;>;>;>;;>;>;;>;>;>;>;>;>;>;;>;>;;>;>;>;>;>;>;>;;>;>;;>;>;>;>;>;>;>;;>;>;;>;>;>;>;>;>;>;;>;>;>;>;;>>;;>;>;>;>>;;>;>>;>>;;>;>>;;>>>>;>;>;>>>>;>>>>;>;>>>;>>>>>;>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>>>>,>>,>,>,>,>,>,>,>>,>,>>,>>>>,>>,>>>,>,>>,,>,>,>>>,,>,>,>>,>>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>,,,>,>,,>>,,>>,>,,,,>,,,>,,,,>,>,,,>,,,,,,,>,,,,,>,,>,,,,,,,,>,,>,,,>,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,,,,',,',,,,,,,,',,',',',',',',',,',',,',,,,',,',,,',,,,',,',',,,'',',',,',,',',',',',',',',',,',,','','',''',,',''','','''','',''''',','",
-">>;;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>>;>>;;>;>>;;>>;>>>;>>;>>>;>;>>;>>>>;>>>>;;>>>>>>>;>;>>>;>>>>>>;>>>>;>>>>;>>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>,>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>>>>>,>>>>,>>,>,>>,>>,,>>>,>,>>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,,>>,>,>,,,,>,,,,,>,>,,>,,,>,>,,,,,>,,,>,>,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,',,,',,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,,,',,,,',,',',,',,'',,'',',',,,''',,',',',',',',',',',',',',',''',''',',','',','',',,'','',','','',',,'''''",
-";>>>;>;>;>;>;>;>;>>;;>;>;>;>;>;>;>;>;>>;;>;>;>;>;>;>;>;>;>>;;>;>;>;>;>;>;>;>;>>;;>;>;>;>;>;>;>;>;>>;;>;>;>;>;>;>;>;>;>>;;>;>;>;>;>;>;>>;>;;>>;>;>>;>;>;;>;>;>;;>>;>;>>>;;>>;>;>>;>;>;>;>>>>>;>>;>>;>>>>>;>>>;>>>>;>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>,>>>,>>,>>>,>>>>,>,>,>,>,>,>,>,>>>>,>,>>,>>>,>>,>>>,,>>,>>,>>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>>,,,,,,>,>>,,>,>,>,,,>,,>,>,,,,>,>,,,>,,,,,,>,,,>,,>,>,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,',,,',,',,,',,,',,',',',',',',',,,,',',,',,,',,',,,',,,',,,'',,,',',,,',',',',',',',',',',',',,'',,','',',',''',''',','',''',''',''''',','",
-";;;>;>;>;>;>;>;>>;>>;>;>>>;>;>;>;>;>>;>>;>;>>>;>;>;>;>;>>;>>;>;>>>;>;>;>;>;>>;>>;>;>>>;>;>;>;>;>>;>>;>;>>>;>;>;>;>;>>;>>;>;>>>;>;>;>;;>;>>;>;>>;;>;>;>>>;>>;>>>;>;>>;;>>>;>>>;>>>>>>;>>;>;>>>;>>>>>;>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>,>>>>,>>,>>,>>,>,>>>,>>,>,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,,>,>,>,>,,,>,,,>>,>>,,>,,>,,,>,,>,,,>,,,,>,>,,,,>,,,>,>,,,,,>,,,,,,,,>,,,,,,>,,>,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',',,,,',,',,',,,'',,'',,'',,,'',,','',',,,',',',',',',',','''',,'',',,''','',,'',''',','','',','',',''''''",
-">>;>>;>>;>>;>>;;>;>;>;>;;>>;>;>;>>;;>;>;>;>;;>>;>;>;>>;;>;>;>;>;;>>;>;>;>>;;>;>;>;>;;>>;>;>;>>;;>;>;>;>;;>>;>;>;>>;;>;>;>;>;>;>;>>>;>>;>;;>>;;>>>;>;>;;>>;>>;;>>;>;>>>>;>>;;>>;>;;>>>>;>>>>;>>;>;>>>>>>>;>>;>;>>>;>>>>>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>,>>,>>,>>>>,>>>,>,>,>,>,>,>>>>,>,>>,>,>>,>>,>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>>,>,>,,>,,,>,,>,>,>,,>,>,>,,>,>,,,,,,>,,,>,,,,,,>,,,,,>,,>,,,,,,>,,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,',,',',,',,',',,',',',',',',,,,',',,',,',,,',,,',,,',,,',',,',,',,',',',',',',',',',',',,','','','',,'','''',',,'''','',''''',''',',','",
-";>>;>;>;>;>;>;>>;>;>>;>>;;>;>>>;;>>;>;>;>;>>;;>>;>>;>;>>;>;>>;>>;;>;>>>;;>>;>;>;>;>>;;>>;>>;>;>>;>;>>;>>;;>;>>>;;>>;>;>;>>;;>;>>;;>;>;>>>;;>>;;;>;>>>>;>;>;>>>;>;>>;>;>>;>>>;>>>>>;>;>>>;>>;>>>>>>;>;>>>>;>>>>>>>>>;>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>>>>,>,>>>,>>>>>,>>,>>,>,>>>,>,>>,>>>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,,>,>,>,,>,,>,,,>,,,,,,>,,>,,>,>,>,,,>,,,>,>,,,,>,,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',',,,',,,',,',','',,'',,'',,',','',',,',',',',',',',',',','',',',',',','','',,','''',,''','',',,'',''''''''",
-">;;>;>;>;>;>;>;;>;>;;>;;>>;>;;>>;>;>;>;>;>;>>;;>>;;>;>;;>;>;;>;;>>;>;;>>;>;>;>;>;>;>>;;>>;;>;>;;>;>;;>;;>>;>;;>>;>;>;>;>;;>>;>;;>>;>;>;;>>;>;>>>;>;>;>;>>;>;>;>>;>;>>>;>>;>;>>;>;>>>>>;>>;>>>;>>;>>>>;>>>>>>>>;>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>,>>>,>>>>>>,>>>,>>>>>,>,>,>>,>>>,>,>,>,>,>,>>>>,>>,>,>,>>>>,>,>>>,>,>>>>,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,>>,,>,>,>,,>,,>,,>,>,>,>,>,,>,>,>,,>,,>,,,,,,,>,,,>,,,,,>,,,,,>,,>,>,,,,,>,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,',,,',,',',',,',,,,,',',',',',,,,',,',',,',,,',,,',,,',,',',,',,,',',,',,,',',',',',',','',',',',',','',',''','',,''',,''',''''''',',',','",
-">>;>;>;>;>;>;>>;>;>>;>>>;>;>>;;>;>;>;>;>>;>;>>;;>>;>;>>;>;>>;>>>;>;>>;;>;>;>;>;>>;>;>>;;>>;>;>>;>;>>;>>>;>;>>;;>;>;>;>;>>;>;>>>;;>;>;>>;;>;>;>;>;>;>;>>;>;>>;>;>>>;>;>>;>>>>;>;>>;>;>>>>>>;>>>>>>>>>>>>;>;>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>>>>>,>>>,>>>>>>>>>>>>,>,>>,>>>,>>,>,>>>,>,>,>,>,,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,,>,,>,>,,>,>>,,>,,>,>,,,>,,,>,,,,>,,>,,>,,>,>,>,,,>,,,>,,>,,,>,>,,,,,,,,,,,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,',,,',,,,,',,,,,,,,,,,,,',',,,,,,,,,,',',,',,,,',,',,,'',,'',,',,,',','',,',',''',',',',',',',',,',''','','',','',','',''','''',',',',',,'''''''''",
-";;>>;>>;>;>>;>;>>;>;>;;;>>;>;>>;>;>;>;>;>;>;>;>>;;>>;>;>>;>;>;;;>>;>;>>;>;>;>;>;>;>;>;>>;;>>;>;>>;>;>;;;>>;>;>>;>;>;>;>;;>;>;>;>>;>>;>;>>;>;>;>;>;>;>;>>;>;>>;>;>>;>>;>>>;;>>>>>>>;>>;>;>>>;>;>;>;>>>;>>>>>>>>>>>>>>>;>>>>>;>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>>,>,>,>,>>,>>>>,>>>,>>>,>>>,>,>,>>>,>>>,>,>>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,,>,>,>>,,,,>,>,>,,,>,>,,>,,>,>,,>,,>,,>,,,,,,,>,,,>,,,,,,,,,,,,>,,>,,,,>,,,,,>,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,',,,',,',,,,,',',',',,,,,',,',',,',',',,,',,,',,'',,',',,',',',,,,',',',',',',','',',',',',',','',',','',,',',',''''',''''',',',','",
-">>;;>;>;>;;>;>;;>;>;>>>;;>;>;>;>>;>;>;>;>;>;>;>;>>;;>>;;>;>;>>>;;>;>;>;>>;>;>;>;>;>;>;>;>>;;>>;;>;>;>>>;;>;>;>;>>;>>;>>>;>;>;>;;>;;>;>;;>;>;>;>;>;>>>;>;>>;;>>;>;>>;>>;;>>>;>;>;>>>>;>>>;>>>>>>>>>;>>>>;>>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>>>>,>,>>>,>,>>,>,>>>>>>>>>,>>>,>>,>,>>,>,>>,>,>>>,>,>>,>,>>,,>,>,>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,,,>>>,,,>,,>>,,>,>,>,,,>,>,,,,>,,,>,>,>,,,>,,,>,>,,,>,,,,,,,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,',,,,,,,,,',,,,,,',',,,,,,,,',',,',,,,',,,,,,',',,',,',,,',',,',',',','',',',',',',','',','',',','',''',',''',',''','''',',''',',''''''''''",
-";;>>;>;>;>>;>;>>;>;>;>;>>;>;>;>;;>>>;>;>>;>;>;>;>;>>;;>>;>;>;>;>>;>;>;>;;>>>;>;>>;>;>;>;>;>>;;>>;>;>;>;>>;>;>;>;;>;>;>;;>>;>;>>;>>;>;>>;>>;>;>;>>;>;;>>>;>>>;>;>>;>>;>>>;>;>;>>>;>;>>>;>>;>;>>;>>>>>;>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>,>,>,>>>>,>>,>>,>>,>>>>,>>>,>,>>,>,>>>>,>>>,>,>>,>>>,>,>,>,>,>,>,>,,>,>,>,,,>>>,,,>>,,>,,,>,,,,>,,>,,,,>,>,,,>,,,,,,,>,,,>,,,,,>,,,>,,>,>,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,',,',',,,',,',,,,,,',',',,,,',,',',',,',',',,',',',',',',',',',,',,',,',',',',',',',','',,',',',',,','',','','',''',',''',',''',',',',','",
-">;>;>>;>;>;>>;>;>>;>;>;;>;>;>;>>>;;>;>;;>;>;>;>;>;;>>;>;>>;>;>;;>;>;>;>>>;;>;>;;>;>;>;>;>;;>>;>;>>;>;>;;>;>;>;>>;>;>;>>;;>;>;>;>;>;>;>;>;>;>;>;>;>>>>;;>>;;>;>>;>>;>>;>>;>>>>;>>>>;>;>>>>>>>;>>>;>;>>;>>;>>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>,>>>,>>>>>>>>>>>,>,>>>>,>>>,>>,>,>>,,>,>>,>>>,>,,>,>,>,>,>,>,,>,>,>,>,>,>,>,>>,>,>,,>>,,,,>>,,,>,>,>,,>>,,>,,>,>,,,>,>,,>,>,>,,,,>,,,>,,>,,,>,,,,,,,,>,,,,>,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,',',',,,,,,',',,,,,,',,',',,,',',,',,',,',,,',',',',',',',',',',',',',,',',''','',''',',''',','',',','',','','',''''''''''''",
-";>;>;;>>;>;>;>;>;;>;>;>>;>;>;>;;;>>;>;>>;>;>;>>;>>;>;>;>;;>;>;>>;>;>;>;;;>>;>;>>;>;>;>>;>>;>;>;>;;>;>;>>;>;>>;>;>;>>;>;>>;>;>;>;>;>;>;>;>;>;>>;>;>;;>>;>;>>>>;>>;>>;>>;>>;>;>>;>;>>>>;>;>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>;>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>>,>>>>,>>>>>,>>>,>>,>,>,>,>>>>,>,>>>,>>>,>>>,>>>>,>,>,>,>,>>>,>,>>,>,>,>>,>,>,>,>,>,>,>,>,,>,>>,,>>>,,,>>,,>,,>,>,,>,,>,,>,,>,,,,>,,,,,,>,>,,,>,,,,,,,,,,>,,,>,,,,>,,,,>,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,',',,,',,',',,,,,,,,,',',,,,,'',',,',,,,',',,,',,',,',,',',,,',',',',',',',',',',','',',',,',',',',''',,'',','',''','''','','',',',',',','",
-";>;>>;>;>>;>;>;>>;>;>>;>;>>>;>>>;;>>;>;>;>;>;>;>;>;>;>;>>;>;>>;>;>>>;>>>;;>>;>;>;>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>>;;>;>;>;>>;>;>;>>>;>;>;>;>>;>;>;>>;>>;>;>;;>;>>>;>>;>>;>>>;>>>>>;>>>>>>>>;>>>>>>;>>>;>;>>;>;>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>,>>>>>>,>>,>>>>>>>>,>>>>>,>,>>,>,>>,>>,>,>>>,>>,>>>,>,>>,,>,>>>,>,>>,>,>,>,>,>,>,,>,>,,>,,,,>>>,,,>,,>,,>,>,,>,,>,,>,>,>,,>,,>,>,,,,>,,,>,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,,,,,,,',',',',,,,',',,,,,',,,',',,,',',',',',,',',',',',,,',,,',',',',',',',,','''','',',',',,''',''',',','',',''','','''''''''''''",
-">>;>;>;>;;>;>;>;>;>>;;>;>;>;>;;>>;>;>;>>;>>;>;>;>;>;>;>;>;>>;;>;>;>;>;;>>;>;>;>>;>>;>;>;>;>;>>;>;>;>;>>;>;>;>;>;;>>;>;>;>;>>;>;>;;>>;>;>;>;>;>;>>;>;>;>>>;>>>>;;>>>;>>;>>;>>>;>;>>;>;>;>;>>;>>;>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>>>,>,>,>>>,>,>>>,>>,>>>,>>,>>,>,>,>>,>,>,>,>,>>>,>,,>,>>,,>,>,>,>,>,>,>>,>,,>,>>>,,,,>,>,>,,>,,>,>,,>,,>,,,,,,>,,>,,,,,,>,,,>,,,,,,,>,,>,,,,,>,,,,>,,,,>,,,,,,>,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,,',,,,,',,',,,,,,,,,,',,,,,',',',,',,',,',,',,',,,',',,,',',',''',',',',',',',',','',',,',','',','''',',',',''',',''',','''',',',',',',','",
-";>;>;>;>>;>;>;>;>;>;>>>;>;>;>>;;>;>;>;;>;>;>;>>;>;>;>;>;>>;;>>>;>;>;>>;;>;>;>;;>;>;>;>>;>;>;;>;>;>>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>>;;>;>>>;>;>;>;>>;>>;>;;>>;;>;>>;;>>;>>;>;>;>>>>;>>>>>;>>>>>>>>;>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>,>>,>>>>>>,>>,>>,>>>>,>>>,>>>>>>>>,>>,>>>>>>>,>>>>>,>>>,>>,>>>,>>,>>>,>>,>,>>,>>,>,,>,>>>,>,>,>,>,>,>,>,>,>,,,,>>,>,,,,>>>,,,>,,>,>,,>,,>,,>,,>,>,>,,>,,,>,>,,,>,,,>,,>,,,,,,,>,,>,,,>,,,,>,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,',,,',,,,,,,,',',',',,,',',,,,',,',,',,',,',,',,',',,',',',',,',,,',',,',',',',',',,'',',',',,','',,'',''',',','''','''',','''','''''''''''",
-">;>;>>;>;>;>;>;>;>;>;;>;>;>;>;>>;>;>;>>;>;>;>;>>;>;>;>;>;;>>;;>;>;>;>;>>;>;>;>>;>;>;>;>>;>;>>;>;>;;>;;>>;>;>>;>;>;>;>;>;>;;>>;>;;>>;>;>;>;>;>;>;>>;>>;>>;>>;>>>>>>;>>;>>;>>>;>;>>>>;>>>>;>>;>>>>;>;>>>>;>>;>>>;>>>>>;>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>>>>,>,>,>>>,>,>>,>,>>,>,>,>>,>,>,>,>,>>>,>>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>>>,,,>,>,>>,,,>>,,>,,>,>,,>,,>,,>,,,>,,>,,,>,,,,,>,,,>,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,',,,,,,,,,,,,,,,',,',,',,,,,,,,,',,,,',',,',,',,',,',',',,',',,',',',,',',',',','',',',',',',',',''','''',','',',',',''','',','',',''',',''',',',',','",
-">;>;;>;>;>>>;>;>;>;>>;>;>;>;>;>;>;>>;>;>;>>;>;;>;>>>;>;>>;>;>>;>;>;>>;;>;>>;>;>;>;>;>;;>;>;>;>>;>>;>>>;>;>;;>;>;>;>>;>>;>>;>;>;>>;>;>;>;>;>;>;>;;>;>;>;>;>>;>;;>;>>;>>;>>;>>>>>;>;>>;>;>>;>>;>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>,>>>>>,>,>>>>>>,>>,>>>>>>,>>>>>,>>>,>>>>>>,>>>>>,>>>>,>,>>,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>,,,>>,>,,>,,>,>,,,>,>,,>,,>,>,,,>,,>,,,>,,>,,,>,>,,,>,,,>,>,,,,,,>,>,,>,,,,,,>,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,',,',,',,,,,,,,,,',',',',,,',,,,',,,',,',,',,,',,',',,',,,',,',',',,',,',,',',',',',','',',,',',,',','',''','',,'',','',','','','',''''''''''''",
-";>;>>;>;>;;;>>;>>;>;;>;>;>;>;>;>>;>;>;>;>;;>;>>;>;;;>>;>;>;>;;>;>>;;>>>;>;>>;>;>;>;>;>>;>;>;>;>;>;>;;>;>>;>>;>;>>;>;>;;>;>;>>;>;;>>;>;>>;>;>;>>>>;>>>;>>;>;>>>>>>;>>;>>>;>>;>;>>>>;>>>>>>>>>>;>;>>>>;>>>;>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>>>>>,>>,>>>>>>>,>>,>>>,>,>>>,>>,>,>,>>>,>,>>,,>,>,>,>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,>>,,>,>,,>,,>,,>,,>,,>>,,>,>,>,,,,,>,,,>,,,,,,,>,,,,,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,',',,,,,,,,,,',,,',',,',,',,',,,',',',,,',,'',,'',,',,'',',,'',',',',',',',,','',',','',','',',','',',''','''''','',''',',',',',','",
-">;>;>;>;>>>;>;>;>;>>;>;>>;>>;>;;>;>;>;>;>>;>;>;>>>>;>;>;>;>>>;>;;>>;;;>;>;;>;>;>>>;>;>;>>;>;>;>;>;>>;>;;>;>;>>;;>;>;>>;>;>;;>;>>>;>;>;;>;>;>;>;;>>;;>>;>;>>;>;>;>>;>>;;>>;>>>>;>;>>;>;>;>>>>>>>>>;>>>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>>>>,>,>>>>>>>>>,>,>>>>,>>,>>>>>,>>,>>,>>>,>,>,>>,>>>,>>,>>,>>,>>,,,>,>>,>,>>,>,>,>,>,>,>,>,>,>,,>,>,>,,,,,>,,,>,>,>,,>,,>,,>,,,,,,,,,,>,>,,,>,,,>,,>,>,,,>,,>,,,,,,,,,,,,,,,,>,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,',,,,',,,',,',,',,,,,,,,',',',',,,',,,,,',,',,,,,',',,,,',',',',,',,',',',,,',',,',',',',',','''',','','',','',',''','','',''',',','','',''''''''''''''",
-">>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>>;>;>;>>;>;>;>;>;;>;>;>;>;>;;;>>>;>;>>>;>;>>;>;>;;;>>;>;>;>;>;>;>;>;;>;>>;>>;;>>;>;>;>;>;>;>>;>;;;>;>;>>;>;>>;>>;>;>>;>>;>;>>;>>>;>>;>>>;>>;>;>>>>>;>>>>>>;>>;>>;>>;>>>>>>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>,>>>>>>,>>,>>,>>>>>,>,>>>>>,>,>>>,>>,>>,>,>>>>>,>>,,>>,>>,>,>,>,>>>>>,>,>,>,,>,>,>,>,>,>,>,>,>,>,>,,>,>>>,>,>,>,,,>,>,,>,,,,,>,>,>,>,>,,,,,>,,,>,,,,,,,,,,,,,,>,,,,,>,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,,,,,,,,,',,,',,,,,,,,,',,,',',,',,,',',,,','',',,',,,',',',',',',',','',',',',',',',,',',',',','',','',','','',',','',''','','',',',',',',','",
-";>;>;>;>;>;>;>;>;;>;>;>;>;>;>;>;>>;>;;>;>;>;>;>>;>;>;>;>;>>>>;;>;>;>;>;>;>;>>;>>>;;>;>;>;>;>;>>;>;>>;>;>;;>>;>;>>;>;>;>;>;>>;>>>;>;>;>;>>;>;>>;>>;>>;>;>>;>>;>;>>;>>;>>>;>>>>;>;>>>>;>;>>>;>>>>>>>>>;>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>,>>>>>>>>>>>>>>>>>>>>,>>>>>>,>,>>>>>,>>>,>>,>>>>,>,>>,>,>>,>>,>,>>>,>,,>,,>,>,>>,>>,>,>,>,>,>,>,,>,,>,>,>,>,,,,,>,>,,>>,,,>,,>,>,>,,,>,,>,,,,>,>,,,>,,,>,,>,,>,>,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,,,,,,',,',',,',,,,',,,',',',',,,',,',,',,',',,',',,,,,',',,'',,,',',,,',',',',,',',',',',','',','',','',,','',''',,'',''''',''',''',''''''''''''''''''",
-">;>>;>>;>;>;>;>;>>;>>>;>;>;>;>;>;;>>>;>>;>;>;>;;>;>;>>>;>;;;;>>;>;>;>;>;>;>;;>;>;>>;>;>;>;>;>;>;>;>;>;>;>>;;>;>;>>;>;>;>>;;>;>;;>;>;>;>;;>;>;>;>;>;>;>>;>;>>;>>;>>>;>>;>>>>;>>>>;>;>>>>;>>>>>>;>>;>>>>>>;>>>>>>>>;>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>,>>,>,>>>>>,>,>>>>,>,>>>>,>>,>>>,>,>>>,>>,>>>,>,>>>,,>>,>>,>>,>>,>,>,,>,>,>,>,>,>,>,>,>,>,>,,>,>>,>,,,>,,,>,>,>,,,>,,,>,,>,,,,>,,,,,>,,,>,,,,,,,,,,>,,>,,,,,,,,,>,,,>,,>,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,',,,,,,,,,,',,,,,',,,',,,,',,,,'',',,,',,,',',',',',,',,','',',',',',',',,',','',',''',','',,''','',,','',','','',',',',',',',',','",
-">;>;>;>;>;>>>;>;>;>;;>;>;>;>;>;>>;>;>;;>>;>>;>>;>;>;>;>;>>>>;>;>;>;>>;>;>;>>;>;>;>;>>;>>;>>;>;>;>;>;>;>;>;>>;>;>;>;>;>>;;>;>;>>;>;>;>>;>>;>>;>>;>>;>>;>;>>;>>;>>;;>>;>;>;>>>;>>>>>>;>>>>>;>>;>>>>>>;>>;>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>,>>>>>>>,>>>>>,>,>>,>>,>,>>>,>>,>>,>,>>>,>,>>>,>,>,>,>,>,>,>>,>,>,>,>,>,>,,>,>,>,,,>,>,>,,,>,>,>,>,,>,,,>,,,>,>,,,>,>,,,>,>,,,>,,,>,>,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,,,,',,',',,,,,,,,,',',',',,,',',,,',,,',',,',',,,','',,'',,',,',','',',',,,',',',',',','',',',,',',,','',''',',',',''','','','','''''''''''''''''''",
-";>;>;>;>;>;;>>;>;>;>>;>;>>;>>;>;>;>;>>;>;>;;>>;>;>;>;>;>;;>;>;>;>>;;>>;>>;>;>;>;>;>;;>;>>;;>;>>;>>;>;>>;>;>;>;>;>;>>;>;>>;>>;>;>>;>>;;>;>;>;>;>;>;>;>>;>;>>;>>;>>>>;>>>>>>;>>;>;>;>>;>>;>>;>>;>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>,>>,>>>>,>,>,>>>,>,>>>>,>>,>>>,>,>>,>>,>>,>,>,>>>,>,>,>,>,>>,>>,>,>,>,>,>,>,>,>>,>,,>,>,>,>,,>,>,,>,>,>,>,,>>,,>,>,,,>>,,,,>,,,,,>,,,>,,,,,,,,>,,>,,>,>,,,>,,,,>,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,',,,,,,',,,,,,,,,,',',,',,,,,,,,,',,,,,',,',',,,',,',',',,,,',,,',,',',',,,',',''',',',',',',','',''','','','',',,'','',''','','','',''',',',',',',',',','",
-";>;>;>>>;>>;;>;>;>;;>;>;>;>;>;>;>;>;;>;>;>>;;>;>;>>;>;>>>;>;>;>>;;>>;>;>;>;>>;>;>;>>>;>;;>>>;;>;>;>>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;;>>;>;>;>>>;>>>;>;>;>>;>>>;>>;>;>>;>;>;>>;>>>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>,>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>,>>>>,>>,>>>>,>>,>,>,>>>,>,>,>,>,>>>,>>,>,>,>>,>,>,>,>,>,>,,>,,>,>,>,>,>,>,,>,>,,,,>,,>,,,>,,,,>,,,,>,>,,>,>,,,>,,,>,,>,,,,,,,,>,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,',,,,,',,,',,,,,,,,',',',',,',',',',,',,',,',,,,',,'',,',',,',',,','',',,',,',',',',',',',,',','',',',',''''','','',,'',''''','','','''''''''''''''''",
-">;>;>;>;>;;>>;>;>;>>;>;>;>;>;>;>;>;>>;>;>>;>>;>;>;;>;>;;;>;>;>;;>>;;>;>;>>;>;>;>;>;;;>;>>;>;>>;>;>;;>;>;;>;>;>;>;>;>;>;>>;>;>;>;>>;>;>;>;>;;>>;;>>>;>>;>>;;>>>;>>>;>;>>>>;>>>>;>>>>;>;>>>;>>>;>;>>>>>;>>>>;>>>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>,>>,>>,>,>>,>>,>>>>,>,>,>>,>,>>>,>,>>,>>,>,>>,>>>,>>,,>>,>,>>>,>,>,>,,>,>,>,,>,>,>,>,>,>,>>,>,>,,>,>,>,,>,>,,,>>,>,,>,,>,,>,>,,>,>,,>,,,,,,,>,,>,>,,,,,>,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,',,,',,,',,',',,,,,,,',,,,',,,,,',,',,',,',',,',,',',,',',,',',',,,',',,',',',',',',','',',','',',',',',',','','''','',','','','''',',',',',','','",
-">;>>;;>;>>;>;>>;>;>;>>;>;>;>;>;>;>>;>;>;;>;>;>>;>>;>;>>>;>;>;>>;>;>>;>;>;>;>;>;>>;>>;>;>;;>;>;>;>>>;>;>>;>;>;>;>;>;>;>;;>;>>;>;>;>;>;>;>;>>>;>>;>;>>;>;>>>>;;>>;>>;>>;>>>>;>;>>;>;>>>>;>>>>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>,>>>,>>>,>>>,,>>,>>>,>>>,>,>,>,>,>>>,>>,>>,>,>,>,>,>,>,,>,>,,>,>,,,>,>,,>,>,,,>,>,,>,,>,,,>,,,,>,,,,>,>,>,,,,,,,,>,>,,,,,>,>,,>,,>,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,',,,,,,,,,,,',',',,,,',,,,',',,',,',,',,',',',,,',',,,'',',',,'',',',',',',',',',',',','',',',''',',',''',,'',,''',','','','',',''''''''''''''''",
-";>;;>>;>;>;>;>;>>;>;>;>;>;>;>>>;>;;>;>;>>;>;>;>;>;>;>;>;>;>>;>;>;>;;>;>;;>;>>;>;;>>;>;>;>>;>;>;>;;;>>;>;>;>>;>>;>;>;>;>>;>;;>;>;>;>;>>>;>>;;>>;>;>;;>>>;>;>>>;>>;>>>>>;>;>>>>>;>>>>;>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>,>>>>>,>,>,>,>,>>,>,>>>,>>,>>,>,>>>,>>,,>>,,>>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>>,>,>,>,>,>,>,,>>,,,>,>,,>,,>,,>,>,,>,>,,,,,,,,>,>,>,,,,,,>,,,,,,,,,,,,,,,,,>,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,',,,,,,,,',,,,,,,,,,,,,',,',,',,,,,,,,,,',,,',',,,',,',,',,',,',,,'',,','',,,',,',',,',,',',',',',',',','',',,',',',,'',''',,''',''',,'''','','',''''',',',',',','','",
-";>>;>;>;>;>>;>;;>;>;>;>>;>>;;;>;>>;>>>;;>;>;>;>;>;>;>;>;>>;>;>;>;>>;>;>>;>;>;>;>>;>;>;>;>;>;>>;>>>;;>;>;>;>;>;>;>>;>>;>;>;>>;>>;>;>;;;>;>;>>;>;>>>>>;;>>>;>;>>;>>;>;;>>>>;>;>>>;>;>>>;>;>>>>;>;>>>>;>>>>;>>;>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>,>>,>>,>>>>>>,>>>>>,>>>>>>>>>>>>>>>>>,>,>,>>,>>>,>,>>,>>>,>>>,>>,,>,>>>,>,>,>>,>,>,>,>,>,>,>>>,>,,>,,>,>,,>,,,>,,,,>>,,,>,,,>,>,,,>,>,,,>,>,>,>,,,,,,,,,>,,,,,>,,,>,,,>,,>,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,',',,,,,,,,,,,',',',',,,',,,,,',,',,,',,',,',,'',,,',,,,,'',',',',',',',',',',',',',',',','',','','','',,''',',','''',',''''','',','''''''''''''''''",
-";>;>;>;>;>;;>;>>;>;>;>;>;>;>>>>;>;>;>;>>;>;>;>;>;>;>;>;>;;>;>;>>;>;>>;>;>;>;>>;>;;>>;>;>;>;>;;>;>;>>;>;>;>;>;>>;>;>;;>;>;>;>;;>>;>;>>>;>>>;>;>>;;;>;>>;;>>;>>;>>;>>>>>;>>>;>>;>>>>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>>>>,>>>,>,>,>,>,>,>,>,>,>>>>>,>>>,>>>>,>>,>,>>,>,>,>>,>,,,>,>>,>,>,>,>,>,>,>,>,,,>,>,>,>,>,>,>,>,>,>>,,,>>,>,>,,>,,>,,,,,>,,,,,,,,>,>,>,>,,,,,>,,,>,,,>,,,,,,>,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,',',,',,,,,,,,,',,,',',,',,,',,',,,,,',,',',,'',',,,',',,',,',',',',',',',',',',',','',',',',','''',,''',',','','',','','''',',',',',',','','",
-">;>;>>;>;>>;>;>;>>;>;>;>;>;>;;>;>;>;>;;>;>;>;>>;>>;>;>;>>;>;>;;>;>;>;>;>>;>;;>;>>>;>;>;>;>;>>;>;>;>;>>;>;>;>;;>;>;>>;>;>;>;>>;>;>>;>;>;;;>>;>;>>>>;>;>>>;>>;>>;>>;;>;>>;>>>;>>>;>;>>;>>;>>>>;>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>,>>>,>>,>>>>>>>>>>>>>>>>>>>>>>,>,>>,>,>>,>,>,>,>>,>,>>>,>,>>>>>,>>,>,>,>,>,>,>,>,>,>>,,>,>,,>,,>,>,,>,,>,,,>>,,,,,,>,,,>,>,>,>,,>,>,>,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,',,,,,,,,',',',',,,',,,,',,',',,,,','',,',,,',',,','',',,',',',,',',',',',',',',''','',',','','',',,''',,''','','',','','',''''''''''''''''''''",
-">;>;>;>>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>>>;>>>;>;>;>;>;>>;>;>;>;>>;>;>;>;>;;>;>>;>;;>;>>;>;>>;>;>;>;>;>;;>>>;>;>>;>;>;>>;>;>>;>;>;>;>;>;>>>>;>>;>>;;>>;>>;>>;>>;>>;>>>>>>>>>;>>>;>>>>;>>>>>>;>>>;>>>>;>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>>>,>>,>>>,>>>>>>>,>>>,>,>,>,>,>,>,>,>,>>>,>>,>>,>>>,>>>,>>,>,,>>,>,,,,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,,>>,,>,>,,>,,>,,,,>,>>,,,>,,,,>,,,>,,,,,,,>,>,>,>,,,,,,,>,,>,>,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,',,,,,,,,',,,,',,',,,,,,',',,,,,,,,,,',,',',,',,,,'',',,,,',,',',,,',,',,,,'',',',',,',',',',',',',',',','','',',',',''',,''',,'','','''','','',',',',',',','','','",
-">;>;>;;>;>;;>;>;>;>;>;>;>;>;>;>>;>;>;;>;;;>;>;>;>;>;>;>;>>;>;>;>>;>;>;>>;>;>;>;>;>;;>;>>;>;>;>;>;>;>>;>;>;>;>;>>;>;;>;>>;>;>;>;>;>;>;;>;>;>>;>;>>;>;>>>;>>;>>;>>;>;>;>;>>>;>>;>;>>>>>;>>>>>;>>>>>>>>;>>>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>,>,>>>>>,>>>>>>>>>>>>>>>>>>,>>>,>>,>>,,>>,,>,>,>>>>,>,>>>>>>,>,>>>,>,>,>,>,>,>,>>,>>,>,>>,,>,>,,>,>,>,>,>>,>,,,>,,>,>,,,>,,,>,>,>,,>,,,,,,,>,,>,,,,,,,,,>,,,,>,,>,,,,,,,,,>,,,,>,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,',,,,,',',',',,,,,,,,',,',',,,,,',',,',',',',',,,''',,',,,','',',',',',',',',',',',,',','',''',',''',','',''','',''','''''''''''''''''''','''",
-">>;>;>>;>;>>;>;>;>>>;>>;>>;>;>;;>;>;>>;>>>;>;>;>;>;>;>;>;>>;>;>;;>;>>;>;>>;>;>>;>;>>;>;;>;>;>;>;>>;>;>;;>>;>;>;;>;>>;>;;>;>;>;>;>;>;>>;>>;>;>;>>;>>>;;>>>;>>;>>;>>>>>>>;>>>;>>>>>;>;>>;>;>>>>>;>>>>>>>;>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>,>>>>>>>,>>>>>,>,>,>,>,>,>,>,>,>,>>>>>,>>>,>>>>>,>>,,>>,>,>,,>,>,>,,>>,>,>,>,>,>,>,,>,,>,,,,>,>,>,>,,,>,,>,,,,>,>,,>,,>,,>,>,>,,,,,,>,,,>,>,>,,,,,,,,>,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,',,,,,,,,',,,,,,,,,',',',',,,',,,',',',,,',,',,',,',',',,',',',',,,,',',',',',',',',',','','',',',,'','',',''','',''','',''',',',',',',',',','''','",
-";>;>;>;>>;>;>>;>;>;>;>;>;>;>;>>;>;>;;>;>;>;>;>>;>>;>;>;>;;>;>;>>;>;>;>;>;>;>;>;>>;>;>>>;>;>;>;>>;;>>;>>;;>;>;>>;>;>>;>>;>;>;>;>;>;>;>;>;>;>>>;>;>;;>>>;>;>>;>;>>;>;>;>>>;>>>;>;>>>>>>>>>>;>>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>,>>,>>,>>>,>>>,>>>,>>>>>>>>>>>>>>>>,>>>>,>,,>>>,>>,>,,,>>,>>>,>>>,>>,>,>>>>,,>,>,>,>,>,>,>,>,>,>,>>,>,>,,>,>,>,>,,>>,,,,>,,>,,,>,,,,,,>,>,,,,,>,,,,,,,,>,,>,,,,,,,>,,>,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,',,,,',',,,,,,',',',,,,,,,,,,',,,',,,,',,'',',,',,',,',,',',,',',',''',',',',',',',',''','',',,',',''','',','',,'','',','',','',''''''''''''''''''''''",
-">;>;>;>;;>;>;;>;>;>;>;>;>;>>;>;>>>;>>;>;>;>;>;>;>;>;>;>;>>;>>;>;>;>;>>;>;>>;>;>;;>;>;>;>;>>;>>;;>>;>;>;>>;>>;>;>>;;>;>;>;>;>;>>>;>;>>;>>;>;>;>>;>>>;>;>>>;>>;>>;>>>;>>;>>>;>>>>>>>;>>;>>>>>;>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>>>>>>,>,>,>,>,>,>,>,>>,>,>>>>,>,>>,>,>>>>,>>,,>>,,,>,>,>>,,,>>,>,>,>,>,>,>,>,,>,>,>,>,,>,>,,>,,,>,>,,>,>>,,>,,,>,,>,>,>,,,,,>,>,,,,>,>,>,,,,,,>,,>,,,,,,,,>,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,,',,,,,,,,,,,',,,,,,',,',,,,,,',',',',',',',,',',,',,,',',,',,',,,',',',,',',',,,',',',',',',',',',','',''','',',','',',''',''',''','''','''',',',',',','',','','",
-">;>;>;>>;>;>>;>>;>;>;>>;>;;>;>;;;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;;>;>;;>;>;>>;>;>;>;>;;>>;;>>;;>;>;>;>;;>;>;;>>;>;>;>;>;>>;;>;>;;>>;>>>;>;>>;>;>>>;>;>>;>>;>>;>>>;>>;>>>;>;>;>>>>>>>;>;>>>;>>>>>;>>>;>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>,>>>,>>>,>>,>>>>,>>,>>>>>>>>>>>>>>>>>,>>>,>,>>>>,>>,>>,>,>>,>>>,>>>>,>,>,>>>,,>,>,>,>,>,>,>,>>,,>,,>,,>,>,>,,>,>,,,>,,,>,,>,,>,,>,,,>,,>,>,>,,,,>,>,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,',,',,,,,,',',,,,,,,,,,,,,,',,,',,,,',,,,',',',',',',,,'',',,',',,',',',',',',',',',',,',',',','','',''',','','',','',','',','''''''''''''''''''''",
-";>;>>;>;>>;>;>;;>;>;>;>>;>>;>;>>>;>;>>;;>>;>;>;>;>>;>>;>;>;>;>;>>>;>>;>;>>>;>;>;>;>;>;>>>;;>>;>;>>;>;>;>;>>;>;>>;;>;>;>>>;>;;>>;>>>;>;>;;>>;>;>;>>;>;>>>;>>;>>;>>>;>>>;>>;>>>>>>;>;>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>,>,>,>,>,>,>,>>>,>,>>>,>,>>,>>,>,>>,>>,>,>,,>,>,>,>,,>>>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,>,>,,>>,,>>,,>,,>,,>,,,>,,>,,,,,,>,>,,,,>,,,>,>,,>,,,,,>,,>,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,',,,,,,,',,,,,',,,,,,,',,',,,,,',',',',',',',,',,',',,'',',,',,',',,,'',,,',',,','',',',',',',',','',''',','','','','',',','',',''''',''',''''',',',',',',','','','",
-">>;;>;>;;>;>;>>;>;>;>;;>;>;>>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>>;;;>;>>;>>;>;>;;>;>>;>;>;;>;>;>;>>;>;>;>;>>>;>;>;>;>>;;>;;>;>>;>>;>;>>;>>;>>>>;>;>>>>;>>;>>>;>>>;>>>;>>>>>>>>>>>>;>>;>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>>>>,>>>>>>>,>>,>>,>,>,>>>>>>>>>>>>>>>>>,>>,>>>,>>>,>>,>,>>,>>,>,>>,>>,>,>,>>,>>,,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,,>,,>,,,>,,,>,,>,,>,,>>,,>,,>,>,,,,,,>,,,,>,,,,,,,,,>,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,,',,,,',,',,,,,,',',,,,,,,,',,,',,',,',,,',,,,',',,',,,',',,''',,,'',',,',',',',',',',',',',,',',,','',',',',''','','',',,'','',','''''''''''''''''''''''",
-">;>>;>;>>;>;>;>>;>;>;>>;>;>;;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;;>>>;>;>;>;>;>;>>;>;;>;>;>>;>;>;>;;>;>;>;>;>;>;>;>;>;>>;>>;>;>;>>;>>;>;>;>>;;>;>>>;>;>>;>>>;>>>;>>>;>>;>;>>;>;>>;>>>>>;>>>>>>>>;>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>,>>>>>>>,>,>,>,>,>,>,>,>>,>>>,>>,>>,>>,>>,>,>,>>>,>>,>,>>,>,>,>,>>,>,>,>,>,>,>,>,,>,>,>,,,>,>,>,,>,,>>,,>>,,>,,>,,>,,,>,,>,,,,,>,>,,,>,>,,,,>,,,>,,,,,>,,,>,,,,,,>,,,>,,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,',,,,,',,,,,,,,,',,,,,,',',',,,,',,',,',,',',,'',,',',,',',',',,,,''',,,',',',',',',',',',',','','''',',','',''',,'',''',''''',','''',',',',',',','','','','",
-";>;>;>;>;>>;>;;>;>;>;>;>;>>>;>;>;>;>;>;>;>;>>;>;>;>;>>;>>;>;>>;>;>;>;>>;;>;>;>;>;>;>;>;>>>;>;>>;>;>;>;>>;>>>;>;>;>;>;>;>;>;>;>;>;>>>;>;>;>>>;>;>>>>;>>;>>;>;>>;>>>;>>>;>>;>>>>>>>>>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>,>>>>>>,>>,>>>>>>>>>>>>>>>>,>>,>,>,>>,>>,>>,>>>,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>>,>,,>,>>,>,,>,>,,>,,,>,,,>,,>,,>,,>,,,>,,>,>,,,,,>,,,,,,>,,,,>,,,>,,,,,>,,,>,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,',,,,',',,',,,,',',,,,,,',',,,',,',,',,,,',,,',,,',',,',,','',',,,'',',',',',',',',',''','',',',,',''','',',''',',','',',''''',','''''''''''''''''''','''",
-">;>;>>;>;>;>;>>;>;>>;>>;>;;>>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;;>;>>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>>;>;;>>;>;>;>>;>>;>>;>>;>>;>>>;>>>>>;>>;>>;>>>>;>>>>>>;>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>>>>,>,>,>,>,>,>,>>>,>>>>>,>>,>>,>>,,>>>,>>,>>,>>,>>>,>,>,>>,>,>,>,>,>,>,>,,>,>,,>,,>,>,,>,>,,>,>,>,>,>,,,,,>,,,>,,,,,,,,>,>,,,>,>,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,,',,',,',',,,,,,',,,,,',,',',,'',,',',,',',,',',,',',',,',',',',',',',',',',','',','''',,'','',',',''','''','',,',''''',',',',',','',','''','",
-">;>;>;>>;>;>;>;>>;;>;;>;>;>;>;>;>;>;>;>;>;>;;>;>;>;>;>;>;>;>>;>;;>;>;>;>;>>;>;>>;>>;>;>;>;>;>;;>;>;>;>;>;;>;>;>;>;>;>;>>>;>;>;>;>;>;>;>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>;>;>>>;>>>>>;>>>>>;>>>>>>;>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>,>>>>>>>,>>>>,>>>>>>,>>,>>,>>>>>>>>>>>>>>,>>>,>,>>>,>>,>>,>>>,,>>,>>,>,>,>,,>,>,>,>,>,>,>,>,>,>,>,>,>,>>,>,>,,>,>,,>,,>,>,,>,,,>,>,,,>,>,>,>,>,>,,,,>,,,,,>,,,,,>,,>,,>,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,',,',',',,,,,',,,,',,',,','',,,',,,,',,,',',,',,,',',',',',,',',,,',',',',',',',',',',,','',,,''',','','',',''',','',''''',',''''''''''''''''''''''''",
-";>;>;>;;>;>>;>;>;>>;>>;>;>;;>>;>>;>>;>;>;>;>>;>;>>>;>;>;>;>;>>;>>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>>;>;>;>>;>>;>;>;>;>;>>;>>;>;>;>>;>;>>;;>>;>>;>>;;>>>>>;>>>;>>>>>;>>>>;>>>>>;>>>;>>>>>>>>;>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>>>,>,>,>,>,>,>>,>,>>,>,>>,>>,>>,,>>>,>>,>>,>,>,>>,>>>,>,>,>,>,>,>,>,>,>,>,,,,>,>,>,>,,>,>,>,,,>,,>>,,>,>,>,,,,,>,,,,,,,>,,,>,>,,,,>,,,>,,>,,,,,,>,,>,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,,',,,,,,,,,,,,,',,,,',,',,',,,,',',,',',,',',,',',',',,',,',,,'',',''',',',',',',',',',','',',,''',,'',','',''',',','',''',',''''',',',',',','','',','','",
-">>;>;>>;>;;>;>;>;>;>;>;>;>>>;>;>;>;>;>>>;>;>;>>;;;>;>;>>>;>;;>;>;>>;>;>;>;>;>;>;>;>;>;>;;>;>;>;>>;>;>>;>;>;>>>;;>;>;>;;>;>;>;>;>;>>;>>>;>;>;>;>>;>>;>>;>>>;>;>>>;>>>;>;>>>;>>>>>;>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>,>>>>>,>>,>>,>,>>>>>>>>>>>>>,>>>>,>>>,>>>,>,>,>>,,>>,>,>,>>,>,>>,>,>,>>,>,>,>,>,>,>,>,,>,>>,>,,>,>,>,,,>,,>>,,>,,,>,,,,,>,>,>,,>,>,>,,,>,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,>,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,',,',,,,,,,,',,',,',,',,,,',,',,,,,,',,,,,',,,,',,',',,,',,',',',',''',,',,,,,',',',',',',',''','',',''',,''',''',',',,''','','',','',',',''''''''''''''''''''''''",
-";>;>;>;>;>>;>;>;>;>;>;>;>;;;>;>;>;>;>;;;>>;>;>;>>>;>;>;>;>;>>>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;;>>;>;>;>;>;>;>>;>;>;>>;>;>>;>>;>;>>;>;>>>;>;>>>>;>>;>>;>;>>>;>>;>;>>>>;>>>;>>;>>>>>>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>,>>>>>>>>>>>>>,>>,>>>>>,>>>>>,>,>,>,>,>,>>>,>,>>,>>>,>>,>>>,>>,>,>>>,>,>>,>,,>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,,>,,>>,,>,,>,>,>,>,,>,>,,>,,,>,,,,,,,>,,,>,>,,,>,>,,>,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,,,,,,,,',,',',,',,,',',',,'',,',',',,',,,',',,',,,',',,,,',',''',',',',',',',',',',',','',,''',',',',''',''','''''',''','''''',',',',','','',','','','",
-";>;>;>;>>;>;>;>;>;>>;>>;>>>;>;>;>;>;>>>;;>;>;>;>;>;>>;;>;>>;;>;>;>;>;>>;>>;>;>;>;>>>;>;>;>>;>;>>;>;>;>>;>;>;>;;>;>;>>;>;>>;>;;>;>>;>;>;>;>;>>;;>>>;>>;>>>>;>>>;>>>>;>;>>;>>>;>>>>;>;>;>>>>;>>>>;>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>,>>>>>>>>>,>>>>>,>,>>>>>>>>>>>>,>,>>>,>>,>,>>>,>,>>>,>>,>,>>,>,>,>>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,,,,>,,,>,,>,,,,>,>,,>,>,>,,,>,,,,,>,,,,,,,,,>,,,>,,>,,>,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,',,,,,,',,',,,,,,,,,,',,,',,,,,',,,,',,,',,',,'',',,',,',',,','',,',,,,',',',',',',',',',',','','',,'',''',',','',',',',','',''',','''''''''''',''''''''''''''",
-">;>;>;>;;>;>>>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;;>>;>;;>;>>;>;>>;>;>;;>>>;>;>;>;>;>;>;;>>;>;>;>;>;;>>;>;>>>;>;>;;>;>;;>;>>>>;;>>>;>;>>>;>>>;;>>;>>>;>;>>;>>;>;>>>>;>>>>>>>;>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>>,>>,>,>>>>>,>>>>>,>,>,>,>,>,>>>>>,>>,>>>,>,>>,>,>,>>,>,>>,>,>,>,,>,>,>>,>,>,>,>,>,>,>,,>,>,>,,>,>,,>,>,>,,>,>>,,>>,,>,,>,>,,,,>,,,,,,,>,,,>,>,,,,,>,,>,,,,,,,,,,,,,,,>,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,',,,,,',',,,,,,,',,',',',,,',,,',',,',',,,',,',,',,,',',',',,,',',,',','',',',',',',',',','','',',',','','',,''','',','''',''','',',''',',',',',','''','','','',''",
-">;>;>;>>;>>;;>;>;>;>;>;>;>;>;>>>;>;>;>;>;>>;>;>;>;>>;>;>>>;>;;>;>;>;>;>>;>;;>;>>;;>;>;>;>>>;>;>;>;>;>>;;>;>;;;>;>;>>;>;>>;>;;>;>>>;;>;>>;;>;>;>>>;>>;;>>;>>>>>>>>>;>>>>;>;>>>>>;>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>,>>>>>>>>>>>>>>>>>>,>,>>>,>>>>>>>>>>>>>>,>,,>>,>>,>>>>,>,>>,>>,>>>,>,>>,>>>>,>,>>,>,>,>,>,>,>,>,>>,>,>,>>,>,,>,>,,>,>,,>,,>,,,>,,>,,>,>,>,,>,>,>,,,>,,,,,,>,>,,,,,,>,>,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,',,,,,,,,,,,,,,,,,',',',,,,,,,,,,',,,',,,,',,,',',,',,',,',,',,',,',',',',',,',,',',',',',',',',',,'',',',',',',',''',,'',''',',''',''','''','''''''''''''',''''''''',''''",
-";>;>>;>;>;;>>;>;>;>;>;>;>;>;>;;>>;>>;>;>;>;>;>;>>;>;>;>;;>>;>>;>;>;>;>;>>;>>;>;;>>;>>>;>;;;>;>;>;>>;>;>>;>;>>>;>>;>;>>;>;>;>>;>;>;>>>;>;>>>>;>>;>>;>>>;>>;>;>;>;>;>>;>>>>>;>;>>>>>>>;>>>>;>>>>>>>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>,>>,>,>>,>>>>>>>>>,>,>,>,>,>,>>,>>>>,>>>,>>,>,>>>,>,>,>,>,>>,>,>,,,>,>>,,>,>,>,>,>,>,>,>,,,,>,,,,>,>>,>,,>,,,>,,>,,>,,>,,,>,,>,,,>,,,,>,,>,,,>,>,,,,,,>,>,,,,,>,>,>,,>,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,,,',',',',,,',,,,',,',',,,',,,',,',',,',,,',,',,',',',',',,,',',',',',',','',','',','','',',',''',',,'','',',','',',''',',',',',',''','',',''''',''",
-">>;;>;>;>>;;>>;>>;>;>;>;>>>;>>;;>;;>;>;>;>;>;>;>;>;>;>;>;;>;>;>>;>;>;>;;>;;>;>>;>;>;;>;>>>;>;>;>;;>;>;>;>>;>;>;;>;>;;>;>;>;>;>>;>;>;>>>;>;>>;>>>;>>;>>;>>;>>>>>>>>;>>;>>>>>>>>;>;>>>>>;>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>,>>,>,>>,>>,>>,>>,>,>>>>,>>>,>,>,>>>>,>,>,>>,>,>,>,>,>,>,>,>>>,,>>>,,,,>,,>,,>>,,>,,>,,>,,>,,,,,,>,,,>,,,,>,,,>,,,,>,,,,,,,,,>,,,,,,,,,,,,>,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,,,',,,',,,,,,,,,,,',,,',,,',,,,',,',',,',',,',',',',',',',,',',,''',',',',',',',',',',',','',',','','',,',''','',''''','''',','''''''''''','''''''','''''''",
-";>>>;>;>;>>;>;>;;>>>;>;>;>;>;;>>;>>;>;>;>;>;>;>;>>;>;>>;>>;>;>;;>;>;>;>>;>>>;>;>;>;>>;>;>;>;>;>;>>;>;>;>;;>;>;>>;>;>>;>;>;>;>;>>;>;>;>;>;>;>>;;>>;>>;>>;>>>;>;>;>>>;>>;>>;>>;>>>>;>;>>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>>>>>>>,>,>>>,>>>,>,>,>,>,>,>,>>,>>>>,>>,>>,>>>,>>>,,>,>,>,>>>,>,,,>>,>,>>,>,>,>,>,>,>,>,>,,,>>,,,>>,>,,>,>,,,>,>,>,>,,,>,,>>,>,,,>,,>,>,,,>,,,>,,,>,>,,>,,,,,>,,,,,,,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,,,,,',,',,,',,,',,',',',',,,',,,',,',',,',,,,,',,,',,',',,,',',',',',',',,,,',',',',',',',','',',',,'','','',''''',',''',',','',',''''''',',',','''','',''''','',''",
-";;;>;>;>;;>;>;>>;>;>;>>;;>;>>;>;>;>;>>>;>>;>>;>;;>;>;>;>;>;>;>>;>>>;>;;>;>;;>>;>;>;;>;>;>;>>;>>;>;>>;>;>>;>;>;>;>>;>;>>;>;>>>;;>>>;>;>;>>>;>>>>;>>;>>;>>;>>>>>>;>;>>;>>;>>>>>>>>>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>>,>>,>,>,,>>>,>>,>,>,>,>>>,,>,>>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>,,>,>,,,>,,,>,>,,>,,,,>,>,,>,,,,>,,,>,,,>,,,,,,,,,>,,,,,>,,,,>,,,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,',,,',,,',',,,'',,',,,',',,,',,,',',,',''',',',',',',',',',','',''',,','',',',,'','','''','',''',',',','''''''','''''''','''''''''",
-">>>;>>;>>>;>;>;;>;>;>;>>;>;>;>;>;>;>;;;>;>;>;>;>>;>;>;>;>;>>;>;>;;>>;>>;>;>>;;>;>;>>;>;>;>;>;>;>;>;;>>;>;>;>;>;>;;>>;;>>;>;;>>>;;>>;>>;>;>>;>;>>;>>;>>;>>;>;>;>>>>>>>>>>>;>;>;>;>>;>>>>>>>>;>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>>>>>>,>>>,>>,>,>>,>,>,>,>,>,>,>,>>>,>>,>>>,>>>>>>,,>>,>>,>>,>>,,>>>,>,,>,>,>,>,>,>,>,>,,>,>,>,>,>>,,>,,>,>,,>>,,>,>,,,>,,,>,>,,,>,,,,>,,,>,,,>,,,,,>,,>,,,,,>,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,',',,',,,',,',',,',,,',',',',',,,',,,',,',,',',,','',,,',,'',,','',,''',,',',',,,',',',',',',',',',',',',,''',',''','','','',','','',',''''''',',',',''''','','''',',''''",
-";;>;>;>;;>;>;>>>;>;>;>;>;>;>;>;>;>;>>>;>;>;>;>;>;>>;>;>;>;;>;>;>>;;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>;>>;;>;>;>;>;>;>>;;>>;;>;>>;;>>>>;>;>>;>;>>>;>;>>;>>;>>;>>>>>;>;>;>;>>;>>>>>>>>>>>>>;>>>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>,>>>>>>>>>>>>>>,>>>,>>,>>,>,,>,>>>,>,>>,>,>,>>,>,>,>>>,>>,>,>,>,>,>,>>,>,,>,,>,,,>>,>,,,>,>,,>,>,,>,,>,>,,,,>>,,>,>,,,>,,,>,,,>,>,,,,,,>,,,,,,,,,,,,>,,,,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,',,,,',,,,,',,,',,,,,,,,,',,,,,,,,',,'',',',',',',','','',','','',,''',','','',','','','','''',',',''''''''',',''''''','''''',''",
-">>;>;>;>;>>;>;;;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>>;>;>;>>;>;>>;>;;>;>;>;;>;>;>;>;>;>;>>;>;>>;>;>>;>>;>;>>;>;>>;>>;>>;;;>>;>;>>>;>;>>>>;>>;>>;>>>>;>>>>>>>;>>>>>>>>;>>;>>;>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>,>>>,>>,>>,>>>>,>,>,>,>,>,>,>>,>>,>>,>>>>,>>,>,>>>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,>>>,,>,>,>,,,>,,>,>,,>,,,,>,>,,,>,,,,,>,,,>,,,>,,,,,>,,>,,,,>,>,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,',,,,,,,,,,,,,',,',,,,,,,,,>,,,,,,',',,,,,,,,',,,,,,',,,,,,,,,,,',,,',,',',',',',',',',','',',',','',,'',','',,''','',''','',','''''',',',','''''',','''','''''''",
-";>;>;>>;>;>;>>>;>;>;>;>;>;>>>;>;>;>;>;>;>;>;>;>>;>;>>;>>;>;>>;>;;>;>;;>;>>;>;>>;>>>;>;>;>;>;>;;>;>;>;>>;;>>;>;>;;>;>;>;>;>;>>>>>;>;>;>;>>>;>;;>>;>>;>>;>;>>;>;>;>>>>;>;>;>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>,>,>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>,>>,>>,>>,>,>>,>>,>,,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,,>>,,,,>,,,>,>,>,,>,,,>,,>,>>,,,>,,,,>,>,,,>,,,>,,,,>,,,,,,,,>,,,,,,>,,,,,,,>,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,',,',,,,,,,',,,,,,,,,,,,,,,,,,,,,,>,,>,,,,,,,',',',',,,,,,,,,,,,',,,,,,,,,,',,',',',',',',',',',',,',',',','''',','',''',,'','',''','''',',','''''''','','''''','''','''''",
-">;>;>;>>;>;>;;>>;>;>;>>;>>;;;>>;>>;>;>>;>>;>;>;;>;>;>;>;>;>;;>;>>>;>>;>;>;>>;>;>;;;>>;>>;>>>;>>;>;>;>;;>>;;>;>;>>;>;>;>;>;>;;>;;>>>;>;>;>;>>>>;>>;>>;>>>>;>>>>>>;>;>>>>>>>>;>>>>>>;>>>>>>;>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>,>>,>>,>>>>>,>,>,>,>,>,>>>>>,>>,>>,>>>,>,>>,>>>>,>>>,>,>>>,>,,>,>,>,>,>,>,>,>,>,>,,>,>>,,>,>>,>,>,,,>,>,,>>,,>,,,,,,>,,>,>,,,,,>,,,>,,,>,,,,,>,,>,,,,>,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,,,,,,>,,>,,,,,,,',,,,,,',,',,,,,,,,',,,,,,,,,,',,,',',',',',',','','''',''',',,',''',',','''',''',','',','''''''',',',''''','','''',''''',''",
-">;>;>;;>;>;>>;;>;>;>;>;>;>>>;>;>;>;>;;>>;>;>;>>;>;>;>;>;>;>>;>;>;;>;>;>;>;;>;>;>>>;>;>;>;;;>;>;>>;>;>>;>;>>;>>;>;>>;>;>;>>>>;>>>;;>>>;>>>;>;>>;>>;>>;>;>>>;>;>>>>>;>>;>>;>>>;>;>>>>>;>>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>,>>>,>,>>>>>>>>>>>>,>,>>,>>>,>>,>,>>,>,>,>,>>,,>,>>,,>,>>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,>,,,>,,>,>,,>,>,,>,,>,>,>,,>,,,>,>,>,,,>,,,>,,>,,>,,,,,>,,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,',,,,,,,,,,,,,,,,',,,,,,,,>,,>>,>,,,,',,,',',,,,,,,,',,,,,,,,,,,,,,',,,',',',',',',',',',',',,',',',''',',,',''',,','','''','','',',',','''''',''''''''','''''',''''",
-";>;>;>>;>>;>;>>>;>>;>;>;>;>;>;>;>;>>>;;>;>;>;>;>;>;>;>;>;>>;>;>;>>;>;>;>;>>;>;>;>;>;>;>;>>>;>;>;;>>;>;>;>;>;>;>;>;;>;>;>;;;>>;;>>>;;>>;>;>>>;>>;>>;>>>>;>;>>>;>;>>>>>>>>>;>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>,>>>>>>>>>>,>>,>,>,>>>>>,>>>>,>,>,>,>,>,>>,>,>>>,>>>,>>>>,>>>>,>>,>>>,>,,>>>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>>,,>>,,,>,>,,,>,,>,,,>,,>,,>,,,,,,,>,,,>,,,,,,,,,,>,,,>,,>,>,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,>,>,,,,',,,',,',',',,,,,,,,,,,,,,,,,,,',,,,',',',',',',',',','',',',',','''','','','','',','','',''''''''',',''','','','''''','''''''",
-">>;>;>;>;>;>;>;;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>>;;>>;>;>;>>;>;>;>>;>;>;>;>;>;>>;;>;>;>>;;>;>;>;>;>;>;>;>>;>>>;>>>>;>>;>;>>;>>;>>;>>;>>;>>;>;>>>>>;>>>>>;>;>;>>>>>>;>>>>>;>>>;>>;>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>,>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>>>>,>>>>,>,>,>>,>,,>,>,,>>,>,>,>>>>,>,,>,>>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,>,,,,>>,,,,>>,,>,,>,,,>,,>,,>,>,>,,,>,,,>,>,,>,,>,,,,,,,,,,,,>,,,>,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,',,,,,,,,,,,,,,,,,,>,>,>>,>,>,,,,,',,,',,,,,,,,,,,,,,,,,,,,,,,,,,,'',',',',',',',''',',','','','',','',',','','','',','','',',',',''''','''''',''','','''''',''",
-";>>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;;>;>;>>;>>;>;>>;>>;>;;>>;;>;>;>;>>;>;>;;>;>;>;>;>;>;;>>;>>;>;>>;>;>;>;>;>;>>;>;>;;;>;>;;>>;>;>>;>;>>>;>;>>;>>;>>>>>;>;>>>;>;>>>>>>;>>;>>>>>;>>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>>,>>,>>,>>>>>,>>>,>,>,>,>,>>,>>>,>,>>>>>,>>>>>>,>>,>,>>>,>,,>,>,>>,>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>>,,>,>>,,,>,,>,>,>,,>,,>,,,,,,>,,,>,,,,>,,,,,,,>,,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,',',,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,>,>,,,,,',,',,,',,,,,,,,,,,,,,>,,,,,,,,,,,,,,',',',',',',','',',',','','',','',''',''''','''','','''''''',',''',',''''''''''',''''''''",
-";;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>>>;>;>;>;;>;>;>;>;>;>>;>;>>>;>;>;;>;>;>>;>;>;>>;>>;>>;>;>;>;>;>;>>;>;>;>;>;;>;>;>>>;>>;>>;>;>>;>;>>;;>>>;>>;>>>;;>;>>>>;>>;>>;>>;>>>>>>;>>;>>>>>>>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>,>>>>>>>>>>>>>>,>>,>>,>>,>,,>>,>,,>,>>>,>>,,>>>>,>,>,>,>>>,,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,,,>,,,>,,>>,,>,,,,,>,,,>,,>,>,,,,>,,,>,,,,,>,,>,,,,,,,,,>,,,,,>,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,',',,,,,,>,>,,,,,,,,,>,>,>>,>>,,,,,,,,,,,',,,,,,,,,,,,,,>,,,,,,,,,,',',',',',',',',',',','',',',,',','','',',',',,'',','''''',',','''''','''''','',',','''','''','",
-">>;>;>>;>>;>;>;>;>>;>>;>>;>;>>>;>;;;>>;>;>>;>>;>;>;>;>;;>;>;>;>;>;>>;>>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>>;>;>>>;>>;>;>;;>;>;>>;>;>>;>;>;>>>>;>>;>>;;>>>>>>;>>>;>>>;>>>>>>;>>>>;>>>>>>>;>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>,>>,>>>>>>,>,>,>,>,>,>>>,>>,>>>,>>>>>,>>>>>>,,>>,>>>,>,,>>>,>,>,,>>>,>,>,>,>,>,>,>,,,>,>,,>,>>,,>,>,,>>,,>,,,>,,,>,>,,>,>,,>,,,>,>,,,>,,,>,>,,,,,,,>,,>,,,,,,>,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,',,,,,',,,,,,,>,>,,,,,,,,>,,>,>>,>,,,,',,',,,,,,,,,,,,>,>,,,,,>,,,,,,,,',,',,',',',',',',',','',','''','',','',','''',''''',,','''''',',',''','','''''''''''''','''''",
-";>;>;;>;>;>>;>;>;;>;>;>;>;>>;;>;>>>;;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;;>;>>;;>;>;>>;>>;>;>>;>;>>;>;>>>;>;>>;>>;>>>>;>;>;>>;>>>;>>>;>;>>>>;>>>>>;>;>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>>>>,>>>>,>>,>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>,>>,>>>,>,>>,>,,>,>>>,>,>,>,>>,,,>>,>>>,,,>,>,>,>,>,>,>,>,>,>,>>,>,,,>,>,>,,,,>,>,>,,>>,,,>,,,,,>,,,>,,,,>,,,>,,,,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,',,,,,,,,,,,',,,,,,,,,,,,,>,>,,,>,,>,>>>,>,>,,,,,,,,,,,,,,,,>,>,,,,>,,>,,,,,,,,,,,',,',',',',',''',',',,''',',',',''','','',','',',,'''',','','''''',''''''',',''',''''''''''''",
-">;>;>>;>;>;;>;>;>>;>;>;>;>;;>>;>;>;>>;>;>;>;>;>;>;>>;>;>>;>;>>;>;>;>;>;>;>;>;>;>;;>>;>;>>;>;>;>;>;>>;>;;>>;>;>;;>;;>>;>;>>;>;>;>;>;>;>;>>;>>;>;>>;>>>>;>>;>>>;>>>>;>>>>;>;>>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>,>>>,>,>>>,>,>>,>,>,>,>,>>>,>>,>>,>,>>>,>>>>>,>,>,>>,>>,>,>>>,>,>,,>>>,>,>,>,>,>,>,>,>,>,,>,,>,>>,>,,,,>>,>,,,>,>,,,,>,,>>,>,,,>,,,,>,,,>,,,>,>,,,>,,,,,,>,,,,>,,,>,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,',,',,,',,,,,,',,,,,>,>,>,,,>,,,>,>,,>>,>,>,,,,,,,,',,,,>,,,,>>,,>,,,,>,,,,',,',,'',',',',',',,,''','',',',''',',',',''','''','''',','''','''',',''','',''''','''','''''','''",
-">;>>;>;>;>>;>;>;;>;>;>;>;>>;;>;>;>;;>;>;>;>;>>;>>;;>;>;;>;>;;>;>;>;>;>;>>>;>;>;>>;;>;>>;>;>;>;>;>;>>;>>;;>;>;>>;>>>;>;>;>>;>>>;>;>>>>>;>>;>>;>>;>>>;>>>;>>>;>>>;>>>;>>>>>>>;>>>;>>>>>;>>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>>,>>,>>,>>>,>,>>,>,,>>>,>,>>,>>,>>,,>>,>>>,,>>,>,>,>,>,>,>,>,>,>,>,>,,,,>,>,>>,,,>,>>,,,>,>,>,,,,,,>,>,,>,>,,,>,,>,,,,,,,,,,>,,>,,,,,,,,,,,,>,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,,,,,',,',,,,,,,,,>,>,>,,,>,>,>>>,>>>,,>,>,,,,,,,,,,,,>,>,,>,,>,,,,,,,,,,,,,',,',',',',''''',,',',',',','',',''',','',','',''','','''',','''',''',''',''''','''','',''','",
-";>;;>;>;>;>;>>;>>;>;>;>>;>;>>;>>;>>;>>;>;>;>;;>;>>;>>;>>;>;>>;>>;>>;>;>;>;>;>;>;;>>;>;>;>>;>>;>>;>;>;>;>>;>>;>;>;;>;>>;>;>>;>;>>>;;>;>>;>>;>>;>>>;>>>;>>>;>>>;>>>>>>>;>>;>>>>>>>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>,>>,>>>,>>>>>>,>>,>>,>>>>,>,>,>,>>>>>>,>>,>>>>>,>>>>,>,>>>,>>,>,>,>>,,>,,>>,>,>,>,>,>,>,>,>,>,,>,,>,>>>>,,>,,,>,>,,,,>>,,>,,,,>,>,>,,,>,,,,,>,,,,,>,>,>,,>,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,,',,,',,,,,,,,,,,,>,>,>,>,,>,,>,>,,>>,,>>>,>,>,>,,,,,,,,>,,,,,,>,,,,,,,,,,',',,,',',',',',,',,''',',',','',',''',,'',','',''',','','',',''''',''','''''''',''''','''''''''''",
-";>>;>;>;>;>>;>;>;>>;>;>;>;>;>;;>;>;>;>;>>>;>>>;>;>;;>;>;>>;>;>;>;>;>>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;;>>;>>;>;>;>>;;>;>>;;>>>>;>>;>>;>>>;>>;>;>>>;>>;>>>>;>;>>>>;>>>;>>;>>;>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>,>>>,>>,>>>>>>>>,>>>>>>>>>>>,>,>,>>,>,>,>,>>,,>,>>,,>,>,>>,>,>,>>>>,>,>,>,>,>,>,>,>,>,,>>,,>,>,,,,,>,>,>,,>,>,>,,,>,,>,>,>,,,,>,,,>,>,,,>,>,,,,,,,,,,>,,>,,>,,,,,,,>,,,,>,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,',,,,,,>,>,>,,>>,>,>,,,>>>,,>>>,>,>,>,,,,,,,>,>>,>,>,>,,,,,,,,,,',',',',',','',',,,',',''',','',',''',','','',',''','','''',',''',''','','''''','''''''''''''''",
-";>;>>;>>;>;;>;>>;>;>;>;>;>;>;>>;>;>;>;>;>;>;;>;>;>>;>;>;>;>;>;>;>;>;>;>;>>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;;>;;>;>>>;>>>;>;>>>;>;>>;>>;>>;;>;>>>>>>;>>;>>>;>>>>>;>>>>>;>>>>>>>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>,>,>,>,>,>>,>>>,>>>>,>>>>,>>>>,>>>,>>>,>>,>>,>,,>,>>,>,>,>,>,>,>,>,>>,,>>,>,>,>>,>,,>,>,,>,>,,>,,>,>,,,,,>,>,,>,,,,,>,,,,>,>,>,,>,,,,,,,,,,>,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,,,>,>>>,>>,>>>,>,>,,,>>>>,>>,>>,>,>>,>,>,,,>,,>,,,,,,,',',',,',',',',',','',''''',',',''',','',',''',''','''','','''',''''',''','''''','','''','','','','''",
-">;>;>;;>;>>;>;;>;>;>;>;>;>;>;>;>>;>;>;>;>;>>;>;>;>;>;>>;>;>;>;>;>;>;>;>;;>;;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>>>;>>;;>;>;>;>;>;>>>;>>;>>;>>>>>>;>;>;>>>>>;>>;>>;>>>;>>>>>>;>>>>>;>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>>,>,>>,>>>>>>,>,>>>>>>>>>>>>>>,>>>,>,>>,>,>,>,,>>,>>,>,>>,>,,>,>>,>,>,>>,>,>,>,>,>,>,,>,>,,,>,>,,>,>,,>,,>,,,>,>,>,,,,>,>>,,,,>,,>,>,,,>,,,,,,,,,,,,>,>,,>,,,,,>,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,,,',',',,,,,,,,>>,>>>,>>>>>>>,>,>,,,>,>>>>,>,>,,>,>,,>>,,>,,>,>,,,,,,,,',',,',',',',',',',',,',',',','''',',',','','',',','''',',''',',''',''',',''''''',''''''''''''','",
-">;>;>>>;>;;>;>>;>;>;>;>>>;>;>>;;>>;>;>;>;>;;>;>;>;>;>;;>;>;>;>;>;>>;>;>>;>>;>>;>;>;>;>;>;>;>;>;>;>;>>>;>;>;>;;>;>;;>>>;>>;>>>;>;;>>;>;>>;>;>;>;>>>>>>;>;>>;>>>>>>>>>;>>;>>>>>;>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>>,>,>,>,>,>,>,>>,>,>>>>,>>>,>>>,>,>,>>,>,>,>>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,,>,,>>,,,,>,,>,>,,,,>,>,,>,,,,>,,,>,>,>,,>,>,,,,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,>>,>>>>>>>;>>>,>,,>,>>,,>,>>>,>>,>,>>,,>,,>,,>,,,,,,',',,,'',',',','','',',','',',',',,,'',''','',','','''',','''',''''','','''''','',''''',''''',''''''",
-">;>;;;>;>>;>;>;>>;>;>>;;>;>>;;>>;>;>;>;>;>>;>;>;>;>;>>;>;>>>;>;>;;>;>;>;>;>;>;>>;>;>>;>>;>>;>>;>;>>;;>;>;>;>>;>;>>;>;>;>>;>;>;>>>;>>>>;>>>;>>>>;>;>;>>>>;>>>;>;>>;>>>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>,>>,>>,>>,>>,>>>,>>>>>>>>>>>>>>>>,>>>,>,>>,>,>>,>>,>>>,>,>>,>,>,,>,>,>>>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,,>,>,>,,,>>,>,>,,,,>,>,,,>,,,>,,,,>,,,,,,,>,,,,,>,,>,,,,,>,,,>,,>,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,',,,,,',,',,,',,,',,,,',,,>,>>>>>>;;;;;;;>>>,>,>,>>>>>,,>>,>,>,,>,,>,,>,,>,>,,,,,,,'',,',',',',,',','','',',''','''','',',','''''',',',''',',''',','''''',''''',''',''''',''''',''''",
-";>;>>>>;>;>;>>;;>>;>;;>>;>;>>;>;;>>;>;>>;>;>>;>>;>>;>;>;>;;;>>>;>>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;;>>;>;>;>;;>;>;>>;>>;>;>;>>>;>;>>;>;>>;>>;>;>>>>>>;>;>>>;>>>>>>>>>;>>;>>>>>>;>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>,>>>>,>,>,>,>,>,>,>,>>,>>>>,>>>>>,>,>>,>,>>>,>>,>,>>>>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,,>,>>,>,,,>,>,,>,,,,,>,>,,,,>,,,>,,,>,,,>,>,>,,,,,>,,,,,,,,>,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,',,,,,,,,,,,',,,,',,,,,,,>>>>>;;>;;;;;;;>,>,>,>,>,,>>>,,>,>,>,>,>,>,,>,,>,,,,,',,,,'',',',','',',',',',',',,'',','',,''','',,','','''',''''','''''',',''','''''''','''''''''''''''",
-";>>;;;>;>;>>;;>>;>;>>;;>;>;;>;>>;>;>>;;>;>;>;>;>;>;>;>>;>>>;>;>;>;>>;>;>;;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>;>>;>;>;>;>;>;>>>;>;>;>>;>;>>;>;>>;>>;>;>>>>>>;>>>;>>>;>>;>>;>>>>;>>>>>>;>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>,>>,>>>>,>>>>>>>>>>>>>>>>,>>,>,,>>,>,>,>>,>,>>,>,>>,>,>,,,,>>,>,>>,>,>,>,>,>,>,>>,>,>,>,,>,>,,,,,>,>,,,>,>,>,>,>,,,>,>,,>>,,,>,,>,,,,,,,>,,,,,,>,>,,>,,,,,>,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,',,,,,,>;;;>;;;;---;;;>>,>,>,>>>,>>>,>,>,>,>,,,>,>,>,>,>,,,,',',,,',',',',',',',',','','',''',','','',''''',''',','',',''',',',''''',''','',''''',''','',''',''",
-">;;>>>;>;>;;>>;>;>;>;>>;>;>>>;>;>;>;;>>;>;>;>;>;>;>;>;;>;>;>;;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>>;>>>;;>;>>;>>;>>>;>>;>>;>>>>;>>;>;>>>;>>>>;>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>>>>>>,>>>>>>>,>,>,>,>,>,>,>,>>,>>>>>>,>>>,>>,>>,>,>,>,>>,>>>>>>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>,>>>>,,>,>,>,,,>,>,,>,>,>,,>,,,,>,,,,,>,>,>,,,>,,>,,,,,,,,,,>,,,>,,>,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,',,',,,,,',,,,',,,,,,,,>>>;;;;;;;----;;>>>,>,>,>,>,,>>,>>>,>,>>,,>,>,>,,,,,,',,,,',,',',',',',''','',','',',',''',',','',',''',','',''''','''''''','''',''''''',''''''''''''''''",
-">>;>;>;>;>>;>;>;>;>>;;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>>;>;>;>>;>;>;>;>>;>;>;>;>>>;>;>>;>>;>;>>>;>;>;>;>;>>;;>>;;>;>>;>;>>;>>;>>;>>;>>;>>>;>>>;>>>;>>>>;>>>;>;>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>,>>>>>,>,>>>>>>>,>,>>>>>>>>,>>>>>>>>,>>,>,>,>>,>>,>,>,>>,>>>>,>,>,,,>,>,>,>,>,>,>,>,>,>,>,>,>,,>>,>,>,,>,,,,>,,,>,>,>,,,,>,,,>,,>,,>,>,,>,>,,,,,,,>,,,,,,,>,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,',,,,,,,,,,,,,,',,,,',,,,',,',,,,>>;;----------;>>>,>>>,>,>>>,>>,>>,>,,>>,>>>>>>,,,,,,,',',',,,',',''',',',','',,''',',',''','',''',','''','',',''',',',',''''''''','',''''',''''''',''''",
-";;>;>;>>;>;>;>;>;>;;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>>;>;>;>;;>>;>;;>;>>;>;>;>;>;>;>;>;;>;>;>>;>;>>;>;>>;;>;>>;>>;>>>;>>;;>>;>>>;>;>>>;>>>>>;>>;>>>>;>>;>>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>,>>>>>>>,>>,>>>>>>>>,>,>>>>>,>,>,>>,>>,>>>>,>>,>>>>>,>>,,>,>>>,>>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,,>,>,>,>,,,>,>,>,,,>,,,,,>,,>,,,,,,,>,>,>,,,,>,>,,,,>,,,>,,,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,',,,,',,,,,,,,,,,,,,,>>;;;;---====-;;>>>,>,>>,>,,>>,>>>>>>,>,>>>>,>,>,,,',',,,,,'',,',',',',',',',''',','','',,'','',,'''',','',''''','''''''''','',','','''','''','','''''''",
-">;>;>;;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;;>>;>;>;>;>;>;;>;>;>;>>;;>;>>>;;;>;>;>;>;>;>;>;>>>>;>;;>>;>;>;>>;>>>>;>>>;>>;;>>;>>>;>>;>>>>>;>>>;>>>>>>>>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>,>>,>>,>,>>>>>>>,>>,>>,>,>>,>,>,,,>>,>>>,>,,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,,,>,,>,>,,>,>,>,,>,>,,,>,,,>,>,>,,,,,,>,>,,,,,>,,,,>,,,>,,>,,>,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,,,,,,',,,,',,',',,',,,,,>>>;----=-===--;>>>>>>,>,>>,>,>,>>>>>>>>>>>>>>,,,,,,,,'',',,,',,,',',','','',,,','','',''','',''',',''',''',',''',',',',','''''''''''','''''''''''''',''",
-">>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>>;>;>;>;>>;;>;>>;>>;>;>>;>;>>;>;>>;>;;;>>>>;>;>>;>;>;>;>;;>;>;>>;>>;>>;>;>;;;>>;;>>;>>>;>>>;>>>>>>;>;>>;>>>>;>>;>>>>;>>>>>>>;>>>>>>;>>>>;>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>,>>,>,>>>,>>>>>>>>>>>>,>,>,>>,>>>,>>>,>>>,>>>,>,>>,>,>>>,>,>>,>,>,>>>,>,>,>,>,>,>,>,>,,>,>,>,,>,>,,>,>,>,,>,,>,,,,,,>,,>,>,,,>,,,,,,,,>,>,,,,,,>,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,,,',,,,',,,,,,,,,,,,,,,,,,>>;;--=====--;;>>>>,>>,>,>,>>>>>>>>>>>>>>>,>,>,,,,',,',,,,,,'',,','',',','''','',','',,'',''','','',''',''''',''''''''''',''',''',''''''''','''','''''",
-";>;>>;>;>;>>;>>;>;>;>;>;>;>;>>>;>;>>>;>;>;>;>;>;>;>;>;>;>>>;;>;>;>>;;>;>;>;>;>;>;>>>;>;;>;>;;>>;>>;>;>>;>;>;>>;;>;>>;>;>>>>;>>>;>>;>>;>;>>;>;>;>>>>;>>;>;>>>>>;>;>>;>>>>;>>>>>;>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>,>>,>>>>>>>>,>,>>,>>>>>>>>>>>,>,>,>,>,>,>>>>>>,>>,>>,>,>>,>>>,>>,>>,>,>>,,>>,>,>,>>>,,,>,>,>,>,>,>,>,>,>>,,>,,>,>,,>,,>,,,>>,,>,,>>,>>,,>,,,>,>,,>,>,>,>,,,,>,,>,,,,>,,,,>,,,>,,,,,,,,,,,,>,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,,,,',,,',,,,',',,',',',,,,,,,>>>;--==**==-;;>>>>>>,>,>,>,,>>;;>;>>;>>>>>>,>,,,,',,,',,,,,,,',',','',',,,''',','',''',',','','','',','',',''',',','','''',''',''',''','''''','''''''",
-">;>;;>;>;>;>;>;>;>;>;>;>;>;>;;>>;>;;>>;>;>;>;>;>>;>>;>;>;;;>>;>;>;>>;>>;>;>;>;>;>;>;>;>>;>;>>;>;>;>;>;;>;>;>;>>>;>;>>;>>;;>>;>;>>;>>;>>>;>>;>>>;>;>>;>>>>>>;>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>,>,>>>>>>>>>>>>>,>,>,>>,>>,>>>>,>>,,>>,>,>,>>>,>>,>,>,>,>,,>>>>,>,>,>,>,>,>,>,,,>,>,>,>,>,>,>,,>>,,,,>,>,,,,,,>,,,>,,,,>,,,,,,,,,,>,,,,,>,,,,,>,,,>,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,,,,',,,,,,>>;;--=***==--;>>>>>>,>,>,>>>>>>;;;;;>;;>>>>,,,,,,,',',,,,,,,',','',,'',''',',''','',,'',''','',''',''',''''','''''''''',''''''''''''''','''''''''''''",
-">;>>;>>>;>;>;>;>>;>>;>;>;>;>>;;>;>>;;>;>;>;>;>;>;>;>;>;>>>;>>;>;>;>;>;>;>;>;>;>;>;>;>;;>;>;>;>;>;>>;>>;>;>>;>;>>;>;>>;>;>>;>>>>;>>;>>;>;>>>>;>>>>>>>>;>>;>>>>;>>>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>>,>>,>>>,>>>>>,>,>,>,>,>>>>>>>>,>>,>>,>,>>,>>>,>>>,>>,,>>,>,>,>,>>>>,,,>,>,>,>,>,>,>,>,>>,,>,,>,>,>,>,,>,,,>>,>,,>,>,>,,,>,>,>,>,,>,>,>,>,>,,,>,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,,,,,,',,,,,',,',,,',,,,',,,>,>;--==*****--;;;>>>>>,>,>,>,>>>;;;;;;;>;>>>>>,,,,,,,,',',,,,,,,',,'',',',,','',,'',''','',''','',',',''',',''',',',',''''','','',','''''''',''''',''''",
-">;>;>;>;>;>;>;>;>;>;>;>>;>>;;>>;>;;>>;>>;>>;>;>;>;>;>;>;>;>;;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;;>;>;>>;>;>>;>>;>>;;>>>;>>;>>>>;>>>;>;>;>;>>>>>>;>>>>;>>>>>>>>;>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>,>>,>>>>>>>>>>>>>,>>>>>>>>>>>,>,>,>,>>,>>>,>>>,>>,>,>,,>>,>>>,>>,>>>,>,,,>>>,>,>,>,>,>,>,>,>,,>,>,>>,>,,,>,>,,>>,,,,,>,,>,,,>,>,,,,,>,,,,,,,,,,,,,>,,,,>,,,,,>,>,,>,,,,>,,,,,,,>,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,',,,',,,,,,,,',,,,',,,,,,>>;--==**&***=--;>;>>>>>,>,>,>>>>>;;;;;;;;>>>,>,,,,,,',,,,,>,,',','',','','',',''','',,'',',',''',''','',''''','''''''''','''''''''''',''''''''','''''''",
-">;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>>;>;>;>;>;>>;>;>;>;>;>;>;>>;>;>;>;>;>>;>>;>>;>>;>;>;>;>>;>;>;>>;>;>;>>;>>;>>;>;>>>;;>>;>;>>>>;;>>;>;>;>>>;>>>>>>>>>;>;>>>>;>;>>;>>;>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>,>>>>>,>,>,>,>,>>>>>>>>,>>,>,>>,>>,>>,>>>>,>,>,>,>,>,,>,>>>,,>>,>,>,>,>,>,>,>,>,>,>,,,>,,>>,,,>,>,,>>,>,>,>,,>,,,,>,>,,,>,>,>,>,>,>,,,>,,,,,>,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,,,,,,,',,',,,,',',,',,,,,>;-==**&*&**==--;;;>>>>>,>,>,>,>;;;-;;;;>;>>>>,>,,,,,,,',,,>,,,,',,',',',',''',','',''',',''',','',''','',',''',',',',',''',','',''''''','',''''''''''''",
-";>;>;>;>;>>;>>;>;>;>>;>;>;>;>;>;;;>;>;>>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;;>;>;>;;>;>;>;>;>;>;>>;>;;>>>;>;>>;>;>>>;>>>>;>>;>>>;>;>;>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>;>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>,>>,>>>>>,>>>>>>>>>>>>>,>>>>>>>>>>>>>,>,>,>>>,>>>,>>,>>>>,>,>,>>>,>>,>>,>>>>,,>>,>,>>,>,>,>,>,>,>,>,,>,>>,>,>,,>,>,,,>,,,>,,,>,,>,,>,>,,,>,>,,,,,,,,,,,,>,,,,>,,,,>,,>,>,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,',,,,,,,',,',,,,,,,',,,,,,,,,',,>>;;==***&&&&*==--;;;;>>>,>,>,>>>>>;-;--;;>;>>>,>,,,,,,,,,>,>,>,,,,'','','',',',',','',,'','','''',''','',''''',''''''''''''''''''',',''''''''','''''','''",
-";>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>>;>>;;>;>;>;>>;>>;>>>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>>;>>>;>;>>;>;>>;;>>;>>;>;>>>;>;>;>>;>>;>;>>>;;>>;>>>;>>>>;>>>>;>>>>;>;>>>;>>;>>>;>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>,>>>,>>>,>,>,>,>,>,>>>>>>,>>>,>>>,>>,>,>>>,>,>,>>,>>,>,>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,,>,>,>,,>>,,>>,,>>,,>,,>,>,,>,,>,,>,>,>,>,>,,,,>,>,,,>,,,,,,,,,>,,,,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,',,,,',,',,,,,,,>>;-=*&&&&&***==--;;;;>>>>,,>,>>>>>;;--;;;;>>>>>,>,,,,,,,,,,>>>,,',,',,',','',''','',''','','',','',','''',',''',',',',''',','','''''''',''''''''','''''''",
-";>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;;>>;>;>;>;>;>;>;>;>;>;>;>;>;;>>>;>;>;>;>;>;>>;>>;;>;;>>;>;;>>;>;>>;>;>;>>>;>;>;>;>;>>;>>>>;;>>>;>>>;>>;>;>>>>;>>;>>>>>>;>>>;>>;>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>,>,>,>,>>,>>,>>,>,>,>>>,>,>,>,>,>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,,,>,,,>,,,>,,>,,,,>,,>,,,,,,,,,,,,>,>,,,,,,,,,,,>,,>,,,,,>,,>,,,,,,>,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',',,,,>;;==**&&&&&**=---;;;;;>>>,>,>>>>>;;;---;;;;>>>>>,,>,,,,,,>>>>>,,,',''',',','',,'','',,'',''','''',''',',''''','''''''','''''''''','','''''','''''''''''''",
-">;>;>;>;>;>;>>>;>;>;>;>;>;>;>;>;>;>>;;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>>;>>;;>>;;>>;>;>;>>>;;>;>;>;;>;>;>;>;>;>>>;>>;>>;;>>>>;>>>;>>;>>>>>;>;>>;>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>,>>,>>,>>>>>,>>,>>,>,>,>,>,>>>>>>,>>>,>>,>>>,>>>,>,>,>,>>,>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,,>,,>,,>,>,,,>,>,,>>,,>>,,>,,>,>,,>,,>,>,>,>,>,,,,,,>,,>,,>,,>,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,,,,,,',',,',,,,,,',,,,,,,,,,,,>>;-=*&&&&&&&**=---;;;;>>>,>,>,>>>>;;----;;>>>>>,>>>,>>,>>>>>>>>,,,,,,,','',',''',',''',',',''',','','','',',''',',',''''',''',','''''''''','''',''''''''''",
-";>;>>;>>;>;>;;>>;>;>;>>;>>;>;>;>>;>;>>;>;>;>;>>;>;>;>>;>;>>;>;>;>;;>>;>>;>;>;;>>;;>>;>>;>;>;>;>>;>;>;>>;>;>;>;>>;>;>;>;>;>>>;>;>>;>;>;>>>;>;>>>>;>>>;>>;>>;>;>>;>>>;>>>>>>>;>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>,>,>,>>>,>>>,>>,>>,>,>>>,>>>,>>,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,,>,,,>,,,>,,,>,,>,,>,,,,,,,>,>,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,,,',,',,,,,,,,,,,,,,,,,,,,,,,,,,,>>;-=**&&&&&**==----;;;;>,>,>,>>>>>;;---;;;;;>>>>>,>>>>>>>>>>>>>,,,'''',',','',,'',',','','',',''','','''''''','''''',',''',''''''','''',''''''''',''',''''",
-";>;>;>;>;>;>>;;>;>>>;;>>;>;>;>;>;>;>;>>;>>;>;;>;>;>;;>;>;>;>;>>;>>;;>;;>;>;>>;>;>>;>;;>;>;>;>;>;>>;>;>;>>;>>>;>;>>;>>;>>>;>>;>>;>>;>>>;>>;>>>;>>>;>>>>>>;>>>>>>>>;>>>>>;>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>>>,>>>>>,>,>,>,>>>>>>>>,>>,>,>>,>>,>,>>,,>>,,>>,>>,>>,>,>>>,>,>>,>,>,>,>,>,>,>,,>,,>,>,>>,>,>,,,>,,>>,,>>,,>,,>,>,,>,,>,,>,>,>,,,,,,,>,>,,>,>,>,,>,,,,,>,,>,,>,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,;;-=**&&&&&&**==--;-;;;;>>>,>,>>>>>;;----;;>;>>>>>>>>>>>>;>;>>>>,,,,,','','',''',''','','',''',','','',',',',''',','''''''''','','''',''''''','''''''''''''",
-">;>;>;>;>>;>;>>;>;;>>;;>;>>;>;>;>;>;>;>;>;>;>>;>;>;>>;>;>;>;>;>;>;>>>>;>;>;>;>;>;;>;>>;>;>;>;>;>;;>;>;>;>>;;>>;>>;>;>;>;>>;>>;>>;>>;>>>;>>>;>>>;>>>>;>>>>>>;>>;>>>>>;>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>>>>,>,>>>,>,>>>>>>>>>,>,>,>,>>,>>>>,>>,>>>>,>>>,>>>,>,>,>,>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,,>,,,>,,>,>>,,>,,,>,,,>,,>,,,,,,,>,,>,,,,,,,>,>,>,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,>,>,,,,,,>,>;;-=*&&&%&&&*==----;-;;>>>,>,>,>>>;;----;;;;>;>;>>;>>;;;;;;;;;>>,,,',',',','',',',',','',',',''''','','''''''',''''','','','''''',''''''','''',''''''''''''",
-">;>;>;>;;>;>;>;>>;>;>>;>;;>;>;>;>;>;>;>;>;>;>;>>;>;>;>>;>;>>;;>;>;;;;>;>;>;>;>;>>;>;>;>>;>;>;>;>>;>;>;>>;>>>;>>;>;>>>>>;>;>;>>;>>;>>;>>>;>>>;>>>;>>>>>;>>;>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>>>>>>>>>>,>>>>>>>>>>>>>>,>,>,>,>>>>>>>,>>,>,>>,>>>,>,>,>,>>,,>>,>>,>,,>>,>,>,,>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,,,,>,>,>,,>>,,>,,>,>,>,,,>,,>,>,>,,,,,,,>,,,,,,>,,>,>,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,,,,,,,,,,,,>,>,,,,,,,>>;-=**&&%&%&**==--;-;;;>>>>,>,>>>>>;;-=--;;;>;;>;;;;;;;;;;;;;>;>>,,,',',','',',''',''','',''',',,''','',',',',''',',''''',''','''''','''''''''''','''''','''",
-";>;>;>;>>;>;>;>;>;>;>;>;>>>;>>;>>>;>;>;>;>;>;>;;>>;>;>;>;>;>>>;>;>>>>>;>>;>;>;>>;>;>;>;;>;>;>>;>;>;>>;>;>;>;>;;>>>;;;>;>>>>>;>>;>>;>>>;>>>;>>;>>>;>>;>>>>>>>>>>>;>>>>;>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>,>>,>>,>>,>>,>>>>>>>>>>,>,>>>,>>>>,>>,>,>>>,>,>,>>>,>>,>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,,>,,,>,>,>,>,,>>,,>,>,>,,,,>,,>,,,>,,>,,>,,,,,,>,>,>,,,>,,>,,,,,,,,>,,>,,>,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,',,,,,',,,,,,,,,',,,>,>,>,>,>>>,,,,,,>>>;;-=*&&&%&&&&*=---;;;;;>>>,>,>,,>>>;--==--;;;>;;;;;;;;;;;;;;;;;>>,,,','',',,''',,'',',',''','''',',''','''''''','''''',''''''','','''','''',''''''',''''''''",
-">;>>;>>;>;>;>;>;>;>;>;>;>;;>;>;;;>;>;>>;>>;>;>>;>;>>;>;>;>;;;>;>>;;;;>;>;>>;>;;>;>;>;>>;>;>>;;>>;>;>;>;>>;>;>>>;;>>>>>;>;>;>>;>>;>>;>>>;>>>;>>;>>>>>>>;>;>>;>>;>>>;>>>>>>;>>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>,>>>>>>,>>>>>>>>>>>,>>>>>,>,>,>,>,>>>>,>>,>,,>>,>>>,>,>>>,>>,>>,>>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>>,>,,>,,>,>,,>,,,>,,>>,,,>,,>,>,,>,,,,>,>,,,,,,,,>,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,,,,,,,,,>,>>,>>>>>>,,,,,>>>;--**&%&%&&&*==-;;;;>>>>>>,>,>>>>>;;===---;;;;;;;;;---;-;;;;;;>;>>,,,',',''',,''',',''',','',',''',','',',','''',',',''','','''''''''''',''''','''''''''''''",
-">;>;>;;>;>;>;>;>;>;>;>;>;>>;>;>>>;>>;>;>;;>>;>;>;>;;>;>;>;>>>;>;;>>>>;>;>;>>;>>;>>>;>;>;>>;;>>;;>>;>;>>;;>>>;;>>;>;>;>>;>>>;>>;>>;>>>;>>>;>>>>>;>;>;>>>>>>>>>>>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>,>>,>>>>>>,>>>>>>>>>>>>>,>>>,>>>>,>>>,>>,>,>,>>,>,>,>,>,>>,>,>>>,,>>,>,>,>,>,>,>,>,>,,>,,>,>,,>,>,,>,,>>,,>,,,>>,,,>,,,>,,>,>,,,,,>,>,>,,,>,,>,,,,,,,>,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,',,,>,>>,>>,>;>>>,,,>,>>>--=*&&&%%&&&*==--;;>;>>>,>>,>,,>>;;-====--;;;;;;-;-;---;--;;;;;>>>',','',',''',',''',,',''','''','''','''''',','''''''''''''',','','''''''''''''''''''''''''",
-">;>;>>;>;>;>;>;>>>;>;>;>;;>;>;>;>;;>;>;>>;>;>;>;>;>>;>>;>;>;>;>>;>;;>;>;>;;>;>;>;;>;>;>;>;>>;>>;>;>;>;>>>;;>>>;>>;>>;>>>;;>>;>>;>>>;>>;>>;>;>;>>>>>>;>>;>;>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>>>>,>>>>>,>>,>>>>,>,>,>,>,>,>>,>,>>,>>>,>,>>>,>>,>,>,>>,>>,>,,>>>,,,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,,,>,,>>,,,>,,>,>,,>,,,>,>,>,,,,,,>,,,,,,,>,>,,,,,,,,>,,,,,>,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,>>>>>>>;;;>>>>,>>>;;--=*&&%&%&&**=--;;;>>>>>>,>,>>>>;;--====----;--;--------;-;;;;;;>>,,',,','',,'',',,''''','',','',','',',',''''',',','','','''''''''',''''','''',''''''',''''",
-">;>;>;>;>>;>>;>;>;>;>>>;>>;>>;>;>>;>;>;>;>;>;>;>;>;>>;;>;>;>;>;;>;>>;>;>;>>;>;>;>>;>;>;>;>;;>;;>;>;>;>;;>>>;>;>;>>;>>;;>>>;>>;>>>;>>;>>;>>>>>>>>;>>>>>>>>>>>>>>;>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>>>,>>>>,>>,>>>,>,>>,>>,>>>,>>,>>,>>,,>>>>,,>,>,>,>,>,>,>,>,>,>,>,,>,>>,>,>,,>,,>,>,>,,,>,>,>,,>,,>,,>,,,,,,,>,>,,,>,>,>,,,,,,,>,,>,,,,,,,,,,,,,,,>,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,',,,,,,',,',,,,,,,,,,',,,,',,,,>>>>;>>;;--;>,>>>>>;;-=**&&%%%&&&*=--;>>>>>>,>>,>,>>;;--=***==---------=-=----;;;;;;;>,,,,',',',''',''''',,',','',','''',''''''',','''''',''''''',''','''''',''',''''''',''''''''",
-">;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;;>>;>;>;>;>>;>;;>;>;>;>;>;>;>;>;>;>;>;>>;>>;>;>;>>>>;>;>;>;>>;>;>>>>;>>>;>>;;>>>>>;>>>;>;>;>>>>;>>;>>;>;>>;>>>;>>>;>>>>;>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>>,>>,>>,>>>>,>,>>>>,>,>,>,>,>,>>>,>,>>,>>,>>>>,>>,>>,>,>>,>>,>,>>>,,>,>>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,>,>,>,>,>,>,,>>,,,,,,,,,>,,>,,>,>,>,,,,,>,,,,,,,,>,,>,,,,,,,,,>,,>,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,,',,,,,,,>>;>;;;;----;>>>>>;;-==*&&%&%&&&**=--;;;>>>>>>>,>>>>;;-===**==------=-===-=---;-;;-;;;>,,',','',','',,','',''''''''',','',',',''''',',''''',',''''',''','''''''''''''''''''''''''",
-">;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;;>;>;>;>;>;>>;>>;>;>;>;>>;>;>;>>>;>>;>;>;>;>;>;>>;>>;>;>;>;>;>;>;;>;>;>>;>>;;>>>;>;>>;;>>;>>>>;>;>>>;>>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>,>>>>>,>>>>>>>>>>>>>,>,>>>,>>,>,>,>>,>,>,>>,>,>,>,>,>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,,>,,>,,>,,,>,,,>,>,>>,>,,>,,>,,,,,,>,>,,,>,>,,>,,,,,,,>,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',',,,,,,,,',,,,>>;-;-;--==-;;>>>>;--=*&&&%%%%&&**=--;;>;>>;>>,>>>;;;-==*****==--=-=========-;-;;-;-;>>,,,,',,'',',''',','',',,',,',''',''''''',','''''',''''',','''''''','''''','',''''''''','''",
-">;;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>>;>;>;>;>;>;>>>;;>;>;>;>;>;;>;>;>>;>>;>;;>>;>;>;>;>;>>;>>>;>;>>;>>;>>>;;>>>;>>>>;>>;>;>>>>;>>>;>;>;>;>>>>>>>;>;>;>>>>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>,>>,>>>>>>>>>,>,>>,>>>>,>>>>,>,>,>,>,>>>>>>,>>,>>>>>>,>>,>>>,>,>>,>>>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>>,>,>,>,,>>,,>>,,,>,,,,>,,,>,,>,>,,,,,,>,,,,,,,,,>,,>,,,,,,,,,,,,,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,>>;;----==**=-;;;;;;--=**&%&%%&&&&*==--;;;;;;>>>>>;-==**&&&&&&**=======*====---;-;--;-;>>,,,,',,''',',''',''''''''''','',',',','''',',',''',''''''','','''''',''''''''''''''''''''",
-">>;>>;>>;>>;>;>;>>;>;>;>>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;;;>>>;>>;>;;>>>;>>;>;>;;>;>>;;>;>;>;>;>;>;;>;>>>;>;>;>;;>>>;>;>>;>;>>;>>>;>;>>>;>>;>>>>>>>>;>;>>>>>>>;>>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>,>>>>>>>>>>,>,>,>>,>>>,,>,>>,>>,>,>>>,>,>,>,>,>>,>>,>,,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,,,>,,,>,,,,>,,>,>,,,>,,,>,,,,>,>,,,>,>,>,,>,,,,,,,,,>,,,,>,,>,,,,,,,>,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,,,',,',,,,>>;---===****=-;;;;--=**&&%%%%%&&**==-----=------==***&&&%%%%%%&&&*********==-;------;;;>>,,,,',,',',',,',',,',',',',','''''''''','''''''''',''','''''''''''''''''''','''','''''''",
-";>;>;>;>;;>;>;>;>;>;>>;;>;>>>;>;>;;>;>;>;>;>;>;>;>;>;>>>>;;>;;>;>>>;;>;;>;>;>>;>;>;>>;>>;>;>;>;>>;>>;;>;>>>;>>>;;>>;>;>>>;>;>;>>>>>;>>;>>>>;>;>>;>>>>>>;>>>>>>>>;>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>>>>,>>,>>>>,>>>>,>,>,>,>,>>>>>,>>>,>,>>>,>>,>>,>>,,>>>,>>>,>,>,>,>,>>>,,>,>,>,>,>,>,>,>,,>,,>,>,,>,>,,>,>,>,>,>,>>,>,,,,>,>,,>,,,>,>,,,,>,,,,,,,,,,,>,>,,>,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,',,,,,,,,,,,,,>;;======*&&&*=-----==**&&&%%%&&&***=-===**&*===----;----==**&&%%%%%&&***=*==-------;;;;;;>>,,,',''','''','''',''','''',',',',',''',','',''''',''','',''','','','',''''','''''''''",
-">;>;>;>;>>>;>>;>;>>;;>>>;>;;>>;>;>>;>;>;>;>>>;>;>;>;>;;;;>;>>>;>;;;>>;>>;>;>;>>;>;>;;>;;>>;>>;>;>;>;>>>;>;;>>;>>>;>>>>;;>>>>>>;>;>>>;>>>>;>>>>;>>>>>;>>>>;>>>;>>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>,>>>>,>>>>>>>>>>>>,>,>>,>,>>>>,>>,>,>,>,>>>,,>>,,>>,>,>,>>,>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,,>,,>,,,,,>,>,,,,>,>,>,,,,>,>,,,,>,>,>,>,,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,',,,,',,',,,,>;-==*****&&&&*=--===**&&&%%%%%&&&**=**&%%%&*-;>,,',,''',,>;;;--*&&%%%%&****===--==--;-;;;>>>,,,,,','',','',','',''',','''''''''',''',''''',''''''''''''''''''''''''''''''''',''''",
-">;>;>;>;>;;>;>;>;;>>;;;>;>>;;>;>;>>;>;>;>>;;>;>>>;>;>>>>;>>;;>;>>>;;>;>>;>;>;;>;>;>>;>>;>;>;>;>;>>;>;>;>>>>;>;>;>>;>;>>>;>;;>>>>>;>>>;>;>>;>>>>>>;>>>;>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>>>>>>>>>>>,>,>>>>>,>>>,>,>,>,>,>>>>>>,>>>,>,>>,>>>>>,>>,>,>>>,>>>,>,>,>>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,>,>,>,,>,>,>,,,>,>,,>,,,,>,,,,,,>,>,,,,,,,,,>,,,>,,,,,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,',,,>;-=**&*&&&&&&&*====***&&%%%%%%&&&*&&&&%%&*->,,',','','',,>>;;;>>;-*&&%%%&**=====*=--;-;;;;>>,,,,,'',','','''','',,'''',',',',',''',''',''''','',',''','''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;>>;>;>>>;>;;>>;>>;;>>;>;>;;>>;>;;>>;>;;>;>;;>>;>;>;>>;>;;>;>;>>;>;>;>;>;>;>;>;>>;>;>>;>>;>;;>>;>>>;>>>;>;>>>;>;>;>>>;>>>>;>>;>>;>>>;>>>>;>>>>>>>;>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>>,>>>>>>>,>>>>>>>>>>>>>>>,>,>,>>>,>>>,>>,>,>,>>,>>,>>,>>,,>,>>,>,>,>>,,,>,>,>,>,>,>,>,>,,,>,,>,>,>,,>,>,,,>,,,>,>,>,,,>,,>,>,,,,>,,>,>,>,,,,,>,>,,>,,,,>,,,,>,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,',,,,,,>>;-**&&&&&%%%&&**=****&&&&%%%%%%&&&&%$%&*->,,',',''''',',,>>>>;>;>>>;=*&%$%&*=*=**=---;--;;;>>,,',,,''','',','','''',,''''''''''','''''',','''''''''''''','',','''''''''''''''''''",
-">;>>;>;>>;>>;>>;>;>;;>;>>>;>;>;>>;;>;>;>>;;>;>>;;>;>>;>;>>;>;>>;>;>;>;>>>;>;>;>>;>;>;>;>;>;>;;>;>;>;>;>;>>>;>;>;>>;>>;>>;>>>>>>;>;>>;>;>>>>>>>>;>>>>;>>>>;>>>>>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>,>>>>,>>,>,>,>,>,>>>>>>>,>,>>,>>,>>>>>,>,>,>>,>,>,>>,>,>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>>,>,,>>,,>>,,,>,,>,,>,,,,,>,>,,,,,,,,,>,>,,,,,,,,,>,,,,,>,,,,,,,,>,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,',,',,,,,',,,,,>--**&&&&&%%%%%&&***&*&&&%%%%%&%&%%%%%&=;,,',','',',''''',,>>>;>;>;;>;;=*%%$%&****=-------;;>>,,,,',',','''','',','''',',',',',''',',''''''',','','',''''''''''','''''''''''''''''",
-">;>;>>;>;>;;>;;>;>;>>;>;;;>>;>;;>>>;>>;>;>>;>;;>>>;>;>;>;>;>;;>;>;>>;>;;;>>;>;>;>;>;>;>;>;>;>>;>>;>>;>;>;>;>;>>>;>>;>>;>>;>;>;>>>>;>>>>>;>;>;>>>>>;>>>;>>>>;>>>;>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>>,>>>>>>>>>>,>,>,>,>>>,>>,>>,>,>,>>>,>,>>,>>>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,,,>,,,>>,,>,,>,,>,>,>,,>,>,>,>,>,,,,,>,>,,>,,,,>,>,,,,,,,>,,,,,,>,,,,,>,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,',,,>>-=*&&&%%%%%%%%&&&&*&&&&&&%%%%%%%%$%&*=;;,,,,',',''''',',,,,>>>>>>>>;>;;;=&%%%%&&**---;-----;;>,,,,',''',','','''',',''''''''''','''',''','''''''''''''','''''''''',''',''',''''''",
-">;>;;>;>;>>;>>;>;>;>;>>;>>;>;>>;;;>;>;>;>;>;>>;>;;>>;>;>;>;>>;>;>;;>;>>>;>;>>;>;>;>>;>>;>>;>;>;>;>;>>>;>>;>>;>;>>;>>;>>;>>>;>>;>>>>;>;>>>>>>>>;>>>>>;>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>,>>>>>>>>,>>,>>>>>>>>,>,>,>>,>>>>>>>>,>>,>>>,>>>,>,>,>>>,>>,>,,>,>>,>,>,>>,>,>,>,>,>,>,>,>,>,,>,>,,,>,>>>,,,>,>,,>>,,,>,,>,,>,,,>,,>,,,,,,,,,,>,>,,,,,,,,,>,,,,,,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,>>-=*&&%%%&%%$%%%&&&&&&&%%%%%%%%$$%%&*=-;>>,',','',',''''',,,,,>>>>>>>>;;;;-*&%%%&**=--------;;>>,',',,,'',','',',''',',',',','''',''''',''','',',''''',''','',''''''''''''''''''''",
-";>;>>;>;>;;>>;>;>;>;>;>;>;;>;>;>>>;>;>;>;>>;>;>;>>;;>;>;>;>;>;>;>>;>;>;;>;>;;>;>;>;;>;>;>;>;>;>>>;>;>;>>;>;>>;>;>>;>>>;>>;>>>>>;>;>>>>>;>;>>;>>;>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>>>>>>>,>>,>>>>>>>,>>>>,>,>,>>,>>,>,>>,>>>>,>,,>,>,>,>>,>,>>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>>,,>,,,>,>,>,>,,,>,>,>,,>,,,>,,>,,>,>,>,>,>,,,,>,>,>,>,,,,,,,>,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,',,,,,,,,',,,,,,',,',,,,>-=&&&%%%%%$%$$%%%&&&&%&&%%%%$$$%%&*=--;>>,,,',',''',',','',,,,,,,>>>>>>>;;-*&%$$&*==----=----;>,,,,''','''','','',''''''''''',''',','''''''''''''',''''''''''''''''''''''''''''''",
-";>;>>;>;>>>;;>>;>;>;>;>;>>;>;>;>;>;>;>;>;;>;>;>;;>>;>;>;>;>;>;>>;>;>>;>>;>;>>>;>;>>>;>;>;>>;>;;>>;>;>>;>;>>;>>>;>>;>;>>;>;>;>;>>>>;>;>>>>>>>>>>>>>;>>>>>>;>>>>>>>>;>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>,>,>>,>>>>>>,>,>>>>>,>>>>>>,>>>,>>>>,>>,,>,>>>>,>>,>>,>>,>,>,>,>>,,>>,>,>,>,>,>,>,>,,>,,>,,>,>,>,>,,,>,,>>,,,>,,>,,>,>,,,,>,,,,,,,,,,>,,,,,,,,,,,>,>,>,,,>,,,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,',,,,,',',,,,,,',,>>;=*%%%%$%$$%$%%%%%%%&%%%%%%$$$$&&===--;>>,,,,,',,,',',',,,',,,,,,,>>>>;>;;;-*&%$$&*====-====--;>,,',''',','','','',',',',',''','''''','',','','','''''''''''','''''''''''''''''''",
-">;>;;>;>;;>>;>;>;>;>;>>;>;>;>;>;>;>;>>>;>>;>;>>>;>;>;>;>>>;>;>;;>;>;;>;;>;>;;>>;>;;;>;>;>;;>;>>;>>;>;;>>;>;>>;>>;>>;>>;>>>>>>>>;>>>;>>;>>;>;>>;>>>>>;>>>>>>;>>;>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>,>>,>>>>>>,>>>>>>>>>,>>,>>>>,>,>,>>,>,>,>>,>>,>,>>,>>,>>>,,>>>,>>,>>,>,>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,,>>,>,>,,>,>,,>,,,>>,,>,,,>,,,>,>,,>,>,>,>,>,,,>,>,>,,>,,,,,,,,,,,,>,,>,,,,,>,,,,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,',',,,,,>>-**&%%%%$%$$$$$%%%%%%&%%%%$$$%%&**=--;>>>,,,,,,,',,,,,,,',,,,,,,,,,,>>>>;;;;-*&%$%%*=====-===--;>,,',',''',''','',''''''','',''','','''''''''''''''''','','''''','''',''','''''''",
-">;>>;>;>>;;>;>;>;>;>>;;>>;>;>;>;>;>;>;>;>;>>;;;>;>;>>>;;;>;>;>>;>;>>;>>;>;>>;;>;>>>;>>;>;>>>;>>;>;>>>>;>>;>;>>;>>;>>;>>;>;>;>;>>;>>>;>>;>>>>>>>>;>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>,>>,>>>>>>>>>,>>>>>>>,>>>>>>,>>,>>>,>>>>>,>,>>>,,>>,>,>,>,>>,,>,>,>,>,>,>,>,>,>,>,>,>,,>>,,>,>,>,>,,>,>,>,,,,>,,>,,>,>,,,>,,,,,,,,,,,>,,,,,,,,,,,>,,,>,,>,,,,,,,,>,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,',,,,,',,,,>;=*&%%$%$$%$%$$%%%%%%%%%%%$$$%&**==-;;>>>,,,,,,,,,,,,,,,,,,,,,,,>,>,,>>>>;;--=*&$$%&**=========;;,,,''',''',''','',',',''',''',''''''','','','''''','''''''''''''''''''''''''''''",
-">;>;>>;>;>>;>;>;>;>;>>;;>>;>;>;>;>;>;>;>;>;>>>>;>;>;;>>>;>>;>;>;>>;>;>;>>;>;>>;>;>;>;>>;>;;;>;;>>>;;>;>;>;>>;>>;>>;>>;>;>>>>>>;>>>;>>>>>>>>;>>;>>;>>>>>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>>>>>>>,>>,>,>>>,>,>,>>>,>,>,>>,>>>,>>>,>,>>,>,,>>,>,>>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>>,,>,,>,,>,,>,>,,>,>>,>,,>,>,,>,,>,,,>,>,>,>,>,,,>,>,>,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,,,,',,,,,',,,,,,>>-=&&%$%$%$$$$$$$$%%%%%%%$$$$%&&*==-;;>>>>,>>,,,>,>,,,,>,,>,,,>,>,>,>>>>>>;;;--=*&$$$%**====**===;>,,,,''',',','','''''','''','','',','''''''','',''''',''',''''''''''''''''''''''",
-">;>;;>;>;>;>>;>;>>;>;>>;;>;>>;>>;>>;>;>;>;>;;;>;>;>>;;;>>;>;>;>;>;>;>>;;>;>;>;>>;>;>;;>;>>>;>>>;;>>>;>>;>>;>>;>>;>>;>>>>;>;>>>>;>>>;>;>;>;>>>>>>>>;>>>>>>;>>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>,>>>>>>>>>,>>,>>>>>>>>>,>>>>>>,>>>>>>>,>>,>>,>,>,>>,>>>>>,>>>,>,>,>>,>,,>>>,>>,>,>,>,>,>,>,>,,>,,,>,>,>,>,>,>,,>,,>,,,>,>,,,,,,,>,,>,>,,,,,,,,,>,,,,,,,,,,,,,,,>,>,,>,,>,,>,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,,',,,',,,,,',,',,>;=*&%%$$$%$%$%$$$$%$%%$%$$$$%&**=--;;>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>;;;---=*%$$%%*****=**==-;,,'',',''''','',','''',','''''''''''',','''''''''''''','''''''','''''''''''''''",
-";>;>>;>;>;>;>>;>;>;>;;>>>;>;>>;;>;;>;>;>;>;>>>;>;>;;>>>;>;>>;>;>;>;>;;>>;>;>;>;;>;>;>>;>;>;>;>;>>;;>;>;>;>>;>>;>>;>>>;;>>>>;>>;>>;>>>>>>>>>>;>;>>>>;>>>>>>>>;>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>>>>>>,>>>>>>>,>,>>,>>>>,>,>>>>,>,>,>>>,>>,>>>>>,>,>,,>,>,>,>,>>,>,>,>>,,>,>,>,>,>,>,>,>,>,>,>,>>,,>,,>,>,,,>,>,>,,>,,>,>,>>,>,,,>,,,>,>,>,>,,,>,>,>,>,,>,,>,,,,,,,,,,,,,,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,>;=*&%%$%$$$$$$%$%$$%$$$$$$%%&&*=--;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;>;;;-=-=&%$$$&&*******=-;>,','''',','','''',','''''',',''',','''''',''','','''''''','''''''','''''''''''",
-";>;>>;>;>;>;;>;>;>;>>;;;>;>;;>>;>>;>;>;>;>;;>;>>;>>;>;;>;>;>;>;>;>;>>;>;>>;>;>>;>;>;;>;>;>;>>;>;>>>;>>;>>;>>;>>;>>;;>>>;>;>>;>>>;>>;>;>>;>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>,>>>>>>,>,>>>>>>>>>,>,>>>>,>,>>>>>,>,>>,>>,>,>>,>>,>>,>>,>>>,>,>>,>,>,>>,>>,>,>,>,>,>,>,>,>,,>,,>,>>,>,,>>,,,>,,>,>,,>,,,,,,>,>,,>,,,,,,,,,>,,,,,,,,,,,,,,,>,,>,>,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,',,',,,,,,,',,',,,',,',,,>>-*&%%$$%$$%$$$$$%$$%$$$$$%&&**=-;;;;>>;>;>>;>>>>>>>>>>>>>>>>>>>>;>>>;>;>;;;----==&$$$%&********=;>,,',',','','','''''',',',''''','''''',''''''''''''',''''''''''''''''''''''''''",
-">;>;;>;>;>;>>;>>;>;>;>>>;>;>>;;>>;>;>;>;>;>>;>;>;>;>;>>;>;>;>;>;>>;>;>;>;;>>;>;>;>;>>;>;>;>>;>>;>;>;>;>;>>;>>;>>;>>>>;>>>>;>>>;>>;>>>>>>>>;>>>;>>>;>>>;>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>>>>,>>>,>,>>>>>>>,>>>>>>,>,>>>,>>>,>>>,>>,>>>,>>,>,>,>>,>,>,>>,>,>,,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,,>,>,,>,,>,>,,>,>,>,,,>,,>,>,>,>,,,>,>,>,,>,>,>,,,,,,,,,>,,>,,>,,,,,>,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,;-*&%%%$$$$$$%$%$$$$$%$$$$%&**=--;;;;-;;-;-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--==&%$$$$&&&&&&**=-;,,,',''','','',',','''''',','''''',''''',',''''','''',''''''''''''',''''''''''",
-">;>>;>;>;>;>;>;>;>;>;;>;>>;;>>>;;>>;>;>;>;>;>>;>;>;>;>;>;>;>>;>;;>;>;>;>>;;>;>;>>>;>;>>;>;>;>;>>>;>>;>>;>>;>>;>>;>;>>;>;>>>;>>>>>>;>;>;>;>>;>>>>>>>>>>>>>>>;>;>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>>>>>>,>>>>>,>>>>>,>,>,>>>,>,>>>>>,>>,>,>>,>>>,>>,,>>,>>>,>>,>,>,>>,>,>,>>>,>,>,>,>,>,>,>,,>,>,>,,>>,>,>,,>,,>,>,,>,,>,,,>,,>,,>,,>,,,,,,>,,,,,,,>,,,,,,,>,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',',,',',,',,,,,>-=&%%$%$%$%$$$$$%$$$$$$$%&&*=---;--=*******=--;-;;;;;;;;;;;;;;;;;;;;;;;;;;-;---==*&$$$$%&&**&**=-;,,,'',''',''''''''',',''''''','',''',','''''',''''''''''''','','''''''''''''''",
-">;>;>>;>>;>;>;;>>;>;>>;>;;>>;;>>;;>>;>>>;>;>;;>;>;>;>;>>;>;>;>;>>;>;>;>>;>>;>;>;;;>;>;;>;>;>>;>;;>>;>>;>;>>;>>;>>;>;>>>>>;>>;>;>;>>>>>>>>>>>;>>;>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>,>>>>>>>>,>>>>>,>,>>,>>>>,>>,,>>,>>>,>>,,>>,>,>>,>,,>,>>,>,,>,>,>,>,>,>,>,>,>,,>,>>,,,>,,>,>,>,,>,>,,>,,>,,>,,>,,>,,>,>,>,,,>,>,>,,,,,,>,,,,,,>,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,,',,,,,,,,,,,,,,,,,>,>;-*&%$$$$$$$$$$$$$$$$$$$%&**=---=*&&%&%%&%&&&*=----------;----;--;--;-;-;-;-----==&$$$$$&&&&&**=->>,',',',''',',',','''',','','''''''''''''''''''''''''','''''''''''''''''''''''",
-">;>;;>>;>;>;>>>;>;>;>;>;>>;>;>;>>;;>;;;>;>;>>;>;>;>;>;;>;>;>;>>;>;>;>>;;>;>;>;>>>;>>;>>>;>>;>>;>>;>;>;>>;>>;>>;>>>>;>;>;>>>>>>;>>;>>>;>>;>>>>>>>>>>;>>>>>>>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>,>>>>,>>,>,>>>>>,>>>>>,>,>,>>>,>,>>,>>,>>,>,>>,>>>,>,>,>,>,>>,>,>>,>,>>>,>,>,>>,>,>,>,>,>,>,>,>,,>,>,,,>>,>,>,,,>,>,,,>,>,,>,,,,>,,>,,,,,,,,,>,,,,,,,,>,>,,,,>,,,,,>,,,,,>,,>,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,',,,,,,,,',,,,',,',,',,',,',,,,>>-=&%%$%$$%$$%$$$$$$$$$$%&**==*&&%&&&&**&&&&%%&&=---;-------;-----------------===**%$$$$%%&&&**=-;,,,'','','','''''','''''','''','','','','','''','','''''''''''''''''''''''''''",
-";>;>>;;>;>;>;;;>;>>;>>;>;;>>;>;>;>>;>>>;>>;>;>;>>;>>;>>;>;>;>;;>;>;>;;>>;>;>;>;;>;>;>;;;>;>;>;>>;>>;>>;>>;>>;>>;;>>;>>>>>;>;>>>>>>;>>>>>>;>>;>;>>>>>;>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>,>>>>>>,>>>,>>>>,>>>,>>>,>>,>,>>>,>>,>>>,>>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>>,,>,>>,,>,,,>>,,,,>,>,,,>,,>,>,,>,,,>,>,>,>,,,>,>,>,,,,,,>,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,,,>>-*&%$$$$$$$$$%$$$$$$$%&**==*&%%&&*=***=***&&%%&*=----------------------------==**%$$$$$%&&&**=-;,,,,',',',''',',''',',','''',''''''''''''''','''''''''''''''''''''''''''''''''",
-";>;>;>>;>>;>>>;>;;>;;>;>>>;>;>;>;>;>;;>;>;>;>>;>;>;>;>;>>;>;>>;>>>;>>;>;>>;>;>>;>;>;>>>>>;>>;>;>;>;>;>>;>>;>>;>>>;>>;>;>>;>>;>;>;>>;>>;>>>>>>>>>;>>>>>>;>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>,>>,>>>>>>>>>>>,>,>>>,>>>>,>>>,>,>>,>>,>>>>,,>>,>>,,>>,>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,,>,,>,>,,>,,>,>,,,>>>,>,,>>,,>,,,>,,,>,,>,,,,,,>,,,,,,,>,,,>,,,>,,,,>,,>,,>,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,',',,',,',,',,,,,,,>>;=&%$%$$$%$$$$$$$$$#$%&***&%%&&***&&%%%%&%&&%%$&&*=============================**&$$$$$%%&&**=->>,',',','',''''','''''''',''''','','',''''''''''''','''',''''','''''''''''''''",
-">;>;>;;>;>;>;;>;>>;>>;>;;;>;>;>;>;>;>>;>;>;>;;>;>;>>;>;>;>>;>;>;>;>;;>;>;;>>;>;>;>;>;;;>;>;>>;>;>>>;>;>>;>>>;>>;>>;>>>>;>>>;>>>>>>>>>>>>>>;>>;>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>,>>>>,>>>>>>>>,>>>,>,>>>>>,>>>,>,>>>,>>>>,>>,>>,>,>>,>,>,>>>,>>,>,>,>>,>>,>,>,,>,>,>,>,>,>,>,>,>,>,,>,>,>>,,>,>,,,,,,>,,,>,,,>,,>>,,>,,,>,>,,,>,>,>,,,>,,,,,,,,>,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,',,,,,,,,,,,,',,,,,,,',,,,,>;=&%$$%$$$%$$$$$#$$$#&&**&%%&&*&%###$$$###@$%$%%%&=============================**&%#$$$$%&&&*=-;,,,,',','''',',''',',','''',','',''''''',''','','''''''''''''''','''''''''''''",
-">;>;>>;>;>;>>;>;>;>;>;>>>;>;>;>;>;>;>;>;>>;>>;>;>;;>;>;>;;>;>;>;>;>>;>;>>;>;>;>>;>;>>>;>;>>;>>>;>;>;>>;>>;;>>;>>;>>;>>>>;>>>>;>;>;>>;>>;>>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>,>>,>>>,>>>>>,>,>>,>>>>>,>>,>,>>>,>>,>>>,>>>,>>,>,>,>,>>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>>,>,>,,>,>,,>,>>,>,,>>,,>,>,,,,,>,,>,,,,,>,,,,,,,>,,,,>,,>,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,',,,',,',,,,,',,,,,,',,,,;=&%$$$$$$$$$$$$#$##$&&*&%%&&&$#@@$%&*&&&$@+@@#$$$&*====*=====****&*&*****==*=***&%#$$$$$&&**=;;,,'',,',,','''',''''''',''''''''''','','''''''''',''''''''',''''''''''''''''''",
-";>>;>;>;>>;>;>;>;>;>>;>;;>;>;>>>;>;>;>;>;>;>;>;>;>>;>;>;>>>;>;>;>;>;>>;>;>;>;>;;>>;>;;>>;>;>;;>;>>;>;>>;>>>;>>;>>;>>;>;>>>;>;>>>>>;>>>>>;>>>>>>>;>>>>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>,>>>>>>>>,>,>>>,>>,>,>>,>>>,>>,,>>,>,>>,>>>,,>>,>>,>>>,>,>,>,>,>,>,>,>,>,,>,,,,>,,>,>,,,>,>,,,>,>,,,>,,>,,>,>,,>,,,>,>,,,>,>,>,,,>,,,,,,,,>,,,>,,>,,>,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,',,,,,',',,,,,>;=&%%$%$$$%$$$##$#$#$&&&%%%&%#@@$&-;,,,,;=&$++++@@#&*********&&%&%&&&%&%&&&******&%#$$$$$%&**=-;,,,,',,',''',''',',',''','',''',',''''''','''''''''','''''''''''''''''''''''''",
-";>;>;>>;;>;>;>;>;>;;>;>>;>;>>;;>;>;>>;>;>;>;>>;>;>;>>;>;>;;>>;>;>;>;;>;>;>;>;>>;>;>;>>;>>;>>>;>>;>;>>;>>;>>;>>;>>>;>>>>;>>;>>>;>>>>>;>>>>>;>;>>>>>;>>>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>,>>>>,>>>>>,>>,>>>,>,>,>>>>>,>>>,>>>,>>>,>>,>,>>,>>>>,>>,,>>>,>,>,>,,>,>>,>,>,>,>,>,>,>,>,>,>>,>,>,,>,>,>,,>,,>,,>,,,>,,>,,,>,,,>,,,,,>,,,,,,,>,,,,>,>,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,',',,',,,',,,,,,,,,,,>;=&%$$$$$$$$$$#$####%&&$$%%$@+#&->'''''''',-&#+..++#&*****&%%%%&&******&&&%%&****&%##$$$$$&&*=-;>,',',,,',''',''''''',''''''',''''','''''''','','''''''','''''''''''''''''''''",
-">;>;>;;>>;>;>;>;>>>;>;>;>;>;;>>;>;>;>>;>;>;>;;>>;>;>;>;>;>>;;>;>;>;>>;>;>;>>;>;>;>;>;;>;>>;>;>;>>;>>;>>;>>>;>>;>;>>>;>>>;>>>;>>>>;>>>;>>;>>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>,>>>>>>>>>>>>>>>>,>,>>>>,>>>>>>>,>>>>>>,>,>>>,>,>>,>>>,>>,>>>>,>>,,>,>,>>>,,,>,>,>,>>>>,,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,,>,,>,>,,>,>,>,,,,>,>,,>>,,>,>,,,>,>,>,,,>,,,,,,,,,,,>,,,>,,,,,,,,>,,,,,,,,>,,,,,>,,>,,,,,,,,,,,,,,,,,,,',,,,,',,,,,',,',,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,>;*&%$%$%$$$$$##$####%&%$$%$++$=>''''''''''''>*$....@$&&*&&$#%&******=*==**&%$$&&&&$###$$$$%&*=->>,,,,,,,,'',''',',',''','',''''',''''','''''''''''''''''''''''''''''''''''''''",
-">;>;>>;>;>>;>>>;;;>;>;>;>;>>;>;>>;>;;>;>;>;>>;>;>>;>;>;>;;>>;>;>>>;;>;>;>;>;>;>;>>;>>>>;;>;>>>;;>>;>>;>>;;>>;>>>;>;>>;>>>;>>>;>;>>;>>>>>>>>;>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>,>>>>,>,>>>>,>,>>>>>>,>>>>>,>>,>,>,>>,,>>,>>>,>>>,>,>>>,>,>>>,,,,>>,>,>,>,>,>,>,>,,>,,>,,>,>,>,,>,,>,>,,>,>,,,>,>,,,,>,,,,>,,,,>,,,,,,,>,,,,>,,>,>,,>,,,>,,,>,,>,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',',,',,',,',,,,,,,>-=&%%$$$$%$$$#####@@%%$$$$++$*-,''''''''''''',=$....@%&&$##$&&&%%%%%%%%&&**&%$#%&&$@##$$$$%&**=;>,,',,>,,,''','''''',''''''',''''','''''',''',''',''''''''''',''''''''''''''''",
-">>;>;>;>;>;>;>;>>>>;>>;>;>;>;>;>;>;>>;>;>>;>;>;>;;>;>>;>>;>;>;>;;>>>;>;>;>;>>;>;>;>;;;>>>>>;;>>;>;>;>>;>>>;>>;>;>>>;>>>;>>>;>>>>>>>>;>;>;>>>>>>;>>>>>>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>,>>>>,>>>>>>>,>>>>,>,>,>>>,>,>>>,>>>>>,>>>,>>,,>>,,>,>>,,>>,>,,>>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,>,,>,,>,,,>>,,>,>,>,,,>,>,,,>,,,>,>,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,',,,,,,,,,,,',,,,,,,,,,,,,,>>;=&%%$$$$$$$#$$##@@@$$#$$@+#*=;>'''''''''''''',=#...+$%$@@$$$###@@@@++@@#%&*&&##%%$@###$$$$&&*=->,,>,>>,,'',''',','''','',''''',''','''''','''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;;>;;>;>;>;>;>;>;>;>;;>;>;>;>;>;>;>>;>;>;>;>;>>;>>;;;>>;>>;>;;>;>;>;>>>;>;;;>>>;>>;>>>;>>;>>>;>>>;>>>>;>>>;>>;>;>>>;>>>>>>>;>>>>>>>;>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>>>>>,>>>>,>>>>,>>,>>>,>>>>>>>>,>>,>>,>,>>,>,>>,>>,>,>>,>>>>>,>>>,>,>>,,>,>>,>,>,>,>,>,>,,>,>,,>,>,>,>,>,,>,,>,,>,>,>,,,>,,,>,,>,,>,,,>,,>,,,,,,,>,,,,>,>,,>,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,',,,,,,,,,,',,',,,,,,',,,,,,,,>,,,,>-=&%%$%$$$$$######+@###$@++&=-;;>,'''''''''''''>*@...@@+@#@@@@@#$$#$###@@+@$&&&#@##+@#$$$$$%&*=-;>,>>>>>,,'',''''',''''''','','''''''',''''''',''''',''''','''''''''''''''''''",
-">;>;>;>;>;>;>;>>;>>;>;>>>;>;>;>;>;>>;>;>;>;>;>;>;;>;>;>;>;>;;>;;>>>;>;>;>;>>;>>;>;>;>;>>>>;;>>;>;>;>>;>>;>;>>;>>;>;>>;>>>;>>>>;>>>>>>;>>>>;>;>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>>>>,>>>>,>>>>>>,>>>>,>,>,>>>,>>>,>>>>,>>>>,>,>>,>>,>>,,>,>,,>,>>,>>,>,>,>,>,>,>,>,>,>>,>,>,,>,>,>,>,>,,>,>,>,,,>,,>,,,>,,>,,>,,,>,,>,,,>,>,>,,,>,,,,,,,,,,,,,,,>,,>,,>,,,,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,',,',,,,',,,,,>>,>,>>;=*%%$$%$$$$#$###@++@#$#@+%=-;;>,>''''''''''''',-%+.+@++.+++$&=;>>,,,>;=*%@+@%%%@+@+@###$$$%&**=;>>>;;;,,,''',',''','',''''''''',''''''''','''''''''',''''''''''''''''''''''''",
-">;>>;>>;>;>;>;>;>;>;>;>;>;>;>>;>>;>;>>;>;>;>;>;>>;>;>;>;>;>>;>>;>;>;>;>;>;>;>;>;>;>;>>;;>>>;>;>>;>>;>>;>>;>>;>;>>>>;>>;>>>;>;>>;>>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>>>,>>>>>>>>>,>>>>,>>,>>,>,>>>>>>,>>>>,>>,>,>,>,>>>>,>,>,>>,>>>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,>,>,,>,,>,>,,,>,>>,,>,>,>,,>,,>,,>,,>,,,,>,,,,,,>,,,,>,,,>,,>,>,,,,,,,,,,,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,',,,,',,,,,,,,,',,,,,,>,>>,,,>>;=&&%$$$$%$$####@@+++##@.#*--;>>,,,'''''''''''''>*#..++...#&=->''''''''',;*%@@$%$.+++##$$$$$%&*=------;>,'','''','''''',','','''''','''''''',''','''''''''''''''''''''''''''''",
-";>;>>;;>;>;>;>;>;>;>;>;;>>;>;>;>;>;>;;>;>>>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>>;>;>>;>;>;>>;>>;>>;>>;>>;>>>>>>;>>>;>>;>>>>>>>>>>>>;>>>>>>>>>;>>>;>>>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>,>>,>>>>,>>>>>>>>>>>,>,>,>>>,>,>>,>>>,>>>,,>,>>>>,>,>,>,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>>,>,>,>,,>,>,,>>,,,>>,,,,>,>,,,,,,>,,,,>,,>,,,,>,,>,>,>,,,>,,,,>,,,,,,,>,,,,,,,,,>,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,,,',,',',,,,,,,,,>>>>>,,>>-=&%%$%$$$$$$###@@+++##@+%=-;>>,,,,'''''''''''',,;%+.@+.+%*--;>,'''''''''',-&@+#$+..+@##$$$$&&&=======;>',''',''',',''''''''','',''''','''''''''''''''''''''''''''''''''''''''",
-">;>;;>>>;>;>;>;>;>;>;>>;;>;>;>;>;>;>>;>>;;>;>>;>;>;>;>>>;>;>;>;>;>;>;>;;>;>;>;>>;>;>>;>>;>>;>;>;>>;>>;>>;>>;>;;>>>;>>>;>>>;>>;>>;>;>>>>;>;>>>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>>>>>,>>>>>>,>>>>,>>,>>,>>>>>>>>,>>>>>,>>,>>>,>>>>>,>,,>>>,>>,>>,>,>>>,>,>>,,>,>,>,>,>,>,>,,>,>,,>,>,>,>>,,,>>,,,>>,,,>,>>,>>,,>,>,,>,,>,>,,,,,,,,,>,,,,>,,,,,>,,,,,,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,',,,,',,',,,,,,,,',,',,,>>>>>>,,>;=*&%%$$$$$$#$###@++++#@+@*-;;>>,,,,'''''''''''',,;*@+++@%=-;;;>>,'''''''''''>*#@#@.++@##$$$$%&&****&*=;,,'','',''''',','','''''''',''''',''''''''''''''','''''''''''''''''''''",
-";>;>>;;>>;>;>;>;>;>>;>;>>;>;>;>;>>;>;>;;>>;>;>>;>;>;>;;>>;>;>;>;>;>>>;>>;>;>;>;;>>;>;>>;>;>;>>;>>;>>;>>;>>;>>>>>;>>>;>>>;>>>>>;>>>>>;>>>>>;>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>,>>>>>>,>>,>,>,>,>>>,>,>>>,>>,>,>,>,>,>>>,,>>,>>,>>,>,,,>>,>,>>,>,>,>,>,>,>,>>,,>,>,>,,>,,,>>,,,>>,,,>,>,,,,,,,,>,,,>,,>,,,,,>,>,>,>,,,>,,,,>,>,,>,,,>,,,,,,,,,,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,',,',,,,,,,,,,>;;>>,>;=*&&%%$%$$$$$###@@+++@#@.$=;;>>,,,,','''''''''',,,>=$+@#&=-;;>,>,,'''''''''''';*@@+..+@##$$$$%%&&&&&&*=>,',''''',','''''''','',',''''''''','','''''''''''''''''''''''''''''''''",
-";>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;;>;>;>>;;>;>;;>;>;>;>>;;>;>;>;>;>>;;>;>;>>;>;>>;>;>>;>;>>;>>;>>;>>;>>;>>;>>;;>;>>;>>>;>>>;>;>>>>>;>>>>;>>>>>;>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>,>>>,>>>>>>>>,>,>>>>>>>>>>>>>,>>>,>,>>,>>>>>,>>>>,,>>>,>>,>,>,>>>>,>,>>,>,>>,>,>,>,>,>,,>>,>,>,>,>,>>,,,>,,,,>>,>,,>>,>,>,,,>,,>,,,>,>,,,,,,,,,>,,,,>,,,,,,,,,>,,,,,>,,,>,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,',,,,,,,,',,',,,,,,',',,,,,>>;;>>>>-*&%%%$$%$%$$$###@@+.++#@+&-;;;>,,,',',''''''''',,>>-&@@%=-;;>>,,,,,''''''''''''>&++..++@#$$$$%%%%&%&&*->,'',','''''','',''''''''''''',''''''''''',''',''''','''''''''''''''''''",
-">;>;>>;>;>;>>;>>;>;>;>;>;>;>>>;>>;>;>>;>>;>;>>;>;>;>;;>>;>>>;>;>;>;>>;>;>;>;>;>;>>;>;>>;>;>;>;>>;>>;>>;>>;>>>>>;>>>;>>>;>>>>>>;>>>>;>>>;>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>,>>>>>>>>>>>,>>,>>>>>>,>,>,>,>,>,>>,>,>>>,>>,,>,>>>,,>>>>,>,>,>>>,>,,>,>,>,,>,>,,>,>,>,>,>,>>,,,>,,>,>,>,,>,>,>>,>,,,,>,,,>,,,>,>,,>,,>,,,,,>,>,>,>,,,>,,,,,>,,,>,,,,,>,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,>>;;-;>>;=&%%%$%$$$$$#$$$#@+++++@+@*;;;>>,,',',',''''''',;----&##*=;;>,,,,,'''''''''''''',-%....@@##$$$$%%%%%%&=;,',''''',','''''','','',''','''''''''','''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>;;>;>;>>;>>;>>;;>;>;>>;;>;>;>;>;>>;>>;>>;>;>;;>;>>;;>;;>;>;>;>;>;>;>;>>;>;>>;>;>>;>>;>>;>>;>>;>;>>>;>>>;>>;>;>>;>>;>>>>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>,>>>>,>>,>>>>>>,>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>,,>>,>,,>,>>>,>,>,>>,>,>>,>>>,>>,>,>,>,>,>,,>,>,>,>,,>,,>,>,>,,,>,>,>,>,>,,>,,>,,>,,>,>,>,>,,,,,,,,>,,,,>,,,,,>,,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,',,,,,,',,,',',,',,,,',,,',,,>>;---;;-*&%%%$$$$$$$$####@@..++@+$=;>>>>,,,,',','','''>*&*-==*$&**=->,,''',,''''''''''''';*@..++@#$$$$$%%%%%&&-,,'',',''''','','''''''''',''''','','''''''''''''''''''''''''''''''''''''",
-";>;>;>>;>;>;>>>;>>;>;>;;>;;>>;>;>;;>>;>;>>;>;>;>;>;>;>;>;>>;>;>>>;>>;>;>;>;>;>;>;>;>>;>;>>;>;>>;>>;>>;>>>;>>>>;>>>;>>;>>>>>>>>>>;>>>>>>>>>;>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>,>>>>,>>,>,>,>,>,>,>,>,>,>,>>>,>,>>>,>,>>>>>,>,>>,>>,>>,>,>>,>,>,,>,>,>,>,>,>>,>,>,,>,>,>>,>,>,,>,,>,>,,>,,>,,>,,>,,>,,,,,,,,,,>,>,>,,,>,,,,,>,,,,,>,>,,,,,,,>,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,,,',,,',,,,,,,>;-=---=*&%$$$$%$$$$$$$##@+++.+++$->;>>,,,,',',,,',',,=@#;',=&&&%%*=-,,,,''',''''''''''',>=$...+@##$$$$$$%%%&=;,',''''',',''''''',','',''''',''''''''''''''''','''''''''''''''''''''''''",
-";>;>;;>;>;>;;;>;;>;>;>>;>>;;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;;>;>;;;>;>;>>;>>;>>;>>>;>;>;>>;>;>>;>>;>>>;>>;;>>;>;>>>;>>>>>;>;>;>>>;>>>;>>;>>>>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>,>>>>>>>,>>>>>>>>>>>,>>>,>,>>>,>,>>>,>,>,>,>,>,>,>,,>>>,,>,>,>>,>,>,>,>,>,,>,>,,>,>,>,,,,>,,>,>,,>,,>,,>,,>,,>,,,>,,>,>,>,>,,,,,,,>,,,,>,,,,,>,,,,,,,,>,,,,,,>,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',',,,,,,,,',,,,,>;-*===*&%%$$$$$$%$$$####@++.++.+%->>;>>,,,,,,',,',,'>%+.#=>-&&%@%>,-;,',,',',''''''''''>;=&..+++##$$$$%$%%%*->,'',','''''','','''''''''''''''''','',''''','''''''''''''''''''''''''''''",
-">;>;>>;>;>;>>>;>>;>;>;>;>;>>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>>;>;>;>;>;>;;>;>;>>;>>;>>;>>;>;>>;;>>;>>>;>>>>>;>>>;>;>>>>>>;>>>>;>>>>>;>>>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>,>>>>>,>>>,>,>>,>>>>>,>,>>>>,>,>,>,>,>>>,>>,>>,>>>>>,>>,>,>>>>,>>,>,>>,,,>>,>>,>,>,>,>,>,>>,>,>,>,>,,>,>>,>,,>,,,>,,>,,>,,>,,>,,,>,,,>,,,,,,,,>,>,>,,,>,,,>,,>,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,',,,,,,,',,,,',,',,,,,,,,,,',',,',,,,,,,>;=****&&%$%$$%$$$$$#$$#@@++.....%->>>>>,,',',,',,,,,=#..+%=*%%#++%;;*>,'',',',''''''',,>;=&+..+@@#$$$$$$%%&=>,',''''',','''''''''',',','''''',''''''',''''''''','''''''''''''''''''''''",
-">;>;>;>>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>>;>>;>;>;>;>;>;>;>;>;>>;>;>>;>>;>;>;>;>>>;>>>>;>>;>>>;>;>>>;>>;>>>;>;>>>>;>>>>>;>>>>;>>>>;>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>>,>>>,>>>,>,>,,>,>,>>>,,>,>,>>>,>,>>>,>,,>,>,>,>,>,>,,>,>,>,>,>,>,,,>,>,>,>>,,>,>,,>,,>,,,>,,>,>,,>,>,>,>,,,,,,>,,,,,,,,,,,>,,,,,>,,,>,,>,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,',,,,,,,,,,',',,,,,;-*&&&%%%$$$$$$%$$$$####@+......%;>>>>,,,,,,',,,',',*$+..@$@#$#..+&*%=,,',',',''''''',,;;-&+..++##$$$$%$%&=>,''',',''''','','',',''''''','','''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>;>;>;>;>;>;;>;>;>;>;>;>;>;>;>;>;>;>>>;>;>;>;>;>;;>;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>;>>;>;>>;>>;>;>>>>;>>;>>>;>>>>>;>>>>>>;>>>>>>>>;>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>,>>,>>>,>>,>>>,>,>,>,>,>,>,>,>>>,>>,>>>>,>>>,,>>>,>>>,,>,>>,,>>,>>,>,>,>,>,>,>>,>,,,>,>,>,>,>,>,>,,,,>,,>,>,,>,,>,>,>,,>,,>,,,,,,,>,,>,,,>,,>,,>,>,,,,,>,,,>,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,',,',,',,,,,,,,,,,;-*&&%%%$$%$$$$$$$$#$##@@++.....%;>>>>>,,,,,,,',,,,,&%+.....+##+..@++*',,,,,,',,'''',,>>--&+..++@#$$$$$%%*;,,',''''',',''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''",
-";>;>>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>>>;>;>>;;>;>;>;>;>;>>;>>>;>;>;>;>;>;>;>;>;>>;>>;>;>>>;>;>>;>>>;>>;>>;>>;>;>>;>>>;>>;>>;>>>;>>;>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>,>>>>>,>>>>>>>>>,>>>>>>,>>>>>,>>>>>>>>>>>>,>>>,>,>>,>>,>,>>,,>>>,,>>,,>>,>,>,>>,>,>,>>,>,>,>,>,,>,>>>,>,,>,,>,>,,,>,>>,,>,,,>,>,,,>,,,,>,,>,,>,>,>,,,>,,>,,,,,,,,,,,,>,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,',',,,,,,,,,,',',',,,,,>-*&%%%%$$$%$%$$$$$#$##@@+......%->>,>>,,,',,,,,,,,,*%#.....+#%@.....&,,',',,,,,,',,,,>;;=&+..++@##$$$%%&-,,''',',''''''',',',''',','''''''''','''',''''''','''''''''''''''''''''''''''",
-">;>;;>;>>;>>;>;>;>;>>;>>>;>;>;>;>;;>>;>;;>>;>;>;>>;>;>;>;;;>;>>>;>>;>>;>;>;>;>;>;>>;>;;>>>;>>;;>>;>>;>>>;>>>;>>>;>>>;>>>>>>>>;>>>>;>>;>;>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>>>>,>>>>,>,>>>,>,>,>,>,>>>>,>>>>,>>>,>>>,>>>>,>>>,>>>>,>,>>,>,>,>,>,,>,>,>,>,>>,>,,,>,>,>,>,>,>,>,,,>,>,>,>,,>,>,,>,>,,,,,>,,,,,,,>,,,,,>,>,>,>,,>,,,,,,,,,,>,,>,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,,,,,,,,,,,',',',,,,,,,,,,,>;=&&%%$$$$$$$$%$$$$###@+++.....%->>>>,>,,,,,,,,,,,,*&%+....+$%#....+*',,,,,',',,,,,,>>;-=&+..++@#$$$$$&*>,'',''''',',','''''','''''',','',''''''''''',''''''''''''''''''''''''''''''''",
-">;>>;>;;>>;>;>;>;>>;>;;;>>;>>;>;>>;;>;>>;;>>;>>;;>;>;>;>>>;>>;;>;>;>;>;>;>;>>;>>;>;>>>>;;>>;>>>;>>;>>;;>>;>>>;>>>;>>>>;>;>>;>>>>;>>>>>>>>>;>>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>,>>,>>>,>>>>>,>>>>>>>>>>>,>,>>,>,>>,>>>,>,>,>,>,>,>>,,>,>>,,>,>,>>>,>>,>,>,>,>,,>,>,>,>,>,,>,,>,>,,>,,>,,,>,,>,,,>,,,,>,>>,,,>,>,>,,,>,>,,,,,,,,,,,,,>,,,,>,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,',,,,,,,,,',,,',,',,,,,,,,',',,',,,,,>=*%%%$%$%$$$$$$$$#$##@@+......$->>,>>>,,,,,,,,,,,,=&&#....@$&&@...@-,,,,,,,,,,,,,,,>>;-=%...++@##$$$$&-,,,'',','''''''''','''',''''''''''',''',''''''''''''',''''''''''''''''''''''''",
-";>;;>>>;;>;>>;>;>;;>;>>>;>;>;>;>;;>>>;>;>>;>;>;>>;>;>;>;>;>;;>>;>;>;>;>>>;>;>>;>;>>;;>;>>;>>>;>>;>>;>>>;>>>;>>>;>>;>;>>>>>>>>>;>>;>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>>>>>>>,>,>,>,>,>>,>>,>>>,>>,>,>>>,>,>,>>,>,>>,>,>>,>>,>,>,>,,>,>,>,>,>>,>,>,,,>,>,>,>,,>,>,>,,>>,>,>,,>,,>,>,,,,>,>,,,,,,,>,,,,,>,>,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',',,,,',,,',,,',,,',,,,,',,,,,,,>;*&%%$$%$$%$$$$$#$###@++......#=;>>,>,>,,,,,,,,,,,>&&&#++@##%*%#++&>,,,',,,,,',,,,>>;;-*$....+@#$$$$$*;,'','''',','',','''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>;;>>;>;;>;>;>>;>;>;>;>;>;>;>>>;;>;>;>;;>;>;>;>>;>;>;>;>>;;>;>;>;>;>;>;>>;>;>>;>>;>;>>>;;>>;>>;>>;>>>;>>>;>>;>>>>>;>>>;>>;>>>>>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>>,>,>>,>,>>,>,>,>>>>>>>>>>>>>,>>,>>,>>,>>,,>>>,>>,>>,>,>,>,>,>,>,>,>,>>,>,>,>,>,,>,>,,>>,>,>,>,>,>,,>,,>,,,,,>,>,,>,,,>,>,,,,>,>,>,>,,,>,>,,,,,>,,,,,,>,,,,,,>,,>,,>,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,>;-*%%%$%%$%$%$$$$#$##@++......+*;>>,>>,,,,,,,,,,,>,-**&%$$$@#&&&%&=,,,,,,,,,,,,,,>>>;;=&@...++@@#$$$$*>,'',''''''','''''''''',''''','',''''','''''''''','''''''''''''''''''''''''''''",
-">;;;>;>;>;>>;>>;>;>;>;>;>;>;>;>;;;>>;>;>;>>;>;>;>;;>>;>;>;>;>>;>;>;>;>;>;>;;>>;>;>;>>;>;;>>>;>>;>>;>>;>>>;>>>;>>>;>;>>>;>>>>>>>>;>>>;>>>>>>>>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>>>>,>,>,>,>,>,>>,>>,>>,>>>>>>,>,>>,>,>>,>>>,>,>,>>>,>,>,,>,>,>,>,>>,>,>>,,,>,,>,,>,,>,>,>,,>>,>,,,>,,,>,,,,>,>,,,,,,,,,>,,,,,,>,,,,>,>,,,,>,>,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,',,,,',,',,',,,,',,,',',,,,,,,,>-=&&$%$$%%$$%$$#$###@++......+%->>>,>>,>,,,,,,,,,>;=&&&%&#+#%&&*=>>>,,,,,,,,,,,>>>;;-=$.....+@##$$$$*>,',',',',''''',','',''''','''''''','''''''',''''''''''''''''''''''''''''''''''",
-">>>;>>;>;>;>;>;>;>>;>;>;>;>>>;>>>;;>;>;>;>>;>;>;>>;>;>;>>;>;>;>>;>;>>;>;>>>>;>;>>>;>;>>>>;>>>;>>;>>;>>;>>>;>>>;>>>>>>;>>>>;>>;>>>>>>>>>>>;>;>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>,>>>>>>>>>,>>,>>>>>>>,>,>,>>>>>>>>>>>,>>>,>>,>>,>,,>>,>>,>>>,>>>,,>,>>>,,,>>>,>>,>,>,>,>,,>,>,,,>>,>,>,>,>,>,,,>,>,,>,,>>,,>,,>,>,,>,,>,>,>,>,,,>,>,>,,,>,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,,',,,,',,,,',,,,,,,,>-*&%%%%%%$$$$$$$###@++.......#=>>>,>>,>,>,>,>,>,>>;=*&*&#.+%*=-;>>>>>,,,,>,>>>>>>;;=&+.....++##$$$#&>,,',',,'',''''''''''',''''''''',''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;;>;>;>;>;>;>;;>;>;>;>;;;>;>;>>;>;>;>;;>;>>;>;>;>;>;;>;>;>;>>;>;;>;>;;;>>;>;>;>;>>;;>>;;>>;>>;>>;>>;>;>>;>>>;>;>>>>>;>>;>>>>;>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>,>>>>>>>>>,>,>,>,>,>>,>>,>>>,>>>,>,>>,>,>,>,>,>>,>,,>>>>,,>,>,>,>,>,>,>>,>,>>,,,>,>,>,,>,,>>,,>,>,,>,,,>,,>,,>,>,,>,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,>,,>,,,,,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,',,,,,,,,,,,,',',,',,,,,',,',',,,,,>,>,,>>-=&&%%%%%$$%$#$$#@@+........+&->,>,>>,>,,,,,>,>>>;-=*&&#@#$&*-;;>>>>>>>>>>,>>>>>;-&@......+@@##$$$%;,,,,,',,',',''','',''','','','''''',''',''''''''',''''''''''''''''''''''''''''",
-";>;>>;>>;>>;>;>;>>;>>;>>;>>>;>;>;>;>>;>;>>;>>;>;>;>;>;>>;>;>;>;;>;>>;>;>>>;>;>>;>;>>;>>>;>>>;>>;>>;>>>>>>>;>>>;>>>>;>>;>>>>>>>;>>>;>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>,>>>>>>>,>>,>>>,>>>,>,>,>,>>>>>>>>>>,>>,>>,>>,>,>>,>,>,>>,>>,>,>,>>>,,>,>>,>,>,>,>,>,>,,>,>,,>>>,>,,>,>,>,,,,>,,,>,>,>,,,>,,>,,,,>,,>,>,>,>,,,>,>,>,,>,,>,,,,>,,>,,,,,,,,,,>,,>,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,',,',,,,,,,,,',,,,,,,,,,',,,,,>,,>>;-*&&%&&%$$$$$$#$#@+.........%=>>>,,>>>>>>>,>>>;==*&*&***&****==;;>>,>,>,>>,>>>;=&#........+##$$$$%->,,>,>,,,''',''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''",
-">;>;>;>;>;;>;>>;>;>;>;>;>;>;>;>;>;>;;>>;>;>;;>;>;>;>;>;>>;>;>;>>>;>;>;>;>;>>;>;>>;>;>;>;>>;>>;>>;>>;;>;>;>>>;>>;>;>>>>>>>>;>;>>>>>>>>>>>>;>>>;>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>,>>>>>>>>,>>>>>>,>>>>>>>>>>>>>,>,>,>,>,>>,>>,>>,>>>>,>>,>>>,>>,>>,>,>,>,>>,>,>>,>,>,>,>,>,>>,>,>,,,,>,>,,>,>,>>,>,,>,>,,,>,>,,>,,>,>,,>,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,,,,,,',,',',,,',',',',',,,,,>,>,,,,>>-*&&&&%$%$$$$##@@++........@&;;>>,>,>,>,>>>-**&&*==;;>>,>>>;-=*=-;>,>,>,,>>>-=&#........++@##$$$$*;;>;;>>>,,,,''',',','',''''','',''',''''',''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>>;>;>;>;>;>;>;>;>;>>;>;>;>>;>;>;>;>;>;>;>>>;>;;>;>;>;>;;>>;>;>;>>;>>;>;>>>;>>>;>>;>>;>>>;>>>>>>>;>>>;>>>;>>;>>;>>>>>>>;>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>,>>>>>>,>>,>,>,>,>>>>>>>>>>,>>>,>>,>>,>,>>,>>,,>>,>>,>,>>,>,>,>,>,,>,>,>,>,>,>,,>,>,,>>,>,,>>,>,>,,,>,>,>,,>>,,,>,,,>,,,>,,,>,>,>,>,,,>,>,>,,>,,>,,,,>,>,,,>,,>,,,,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,',,,,,',,,,,,,,,,,,,,,,,,,,,',,,,,>>,,,,,>>-**&&%$$$$$$$##++..........$=;>>>>,>>>>>;=&&&*--;>>>,,'''''''>-*=->>,>>>>;=*$+..........+@##$$$$&=------;>>',','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;>;>;>;>;>;>;>;>;>;>;>;;>;>>;>;>;>;>>;>>;>;>;;>>;>>;>;>;>;>>;;>;>>;>;>;>>;>;;>>;;>>;>;>>;>;>>;>>;>;>>>;>>>;>>>>>;>>>>;>;>>>>>>;>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>,>>>,>>,>>>>>>>>>>>>>,>,>,>,>,>>,>>,>>,>>>,>,>,>>>,>,>,>>>,>>,>,>,>,>>,>,>,>,>,>,>>,>,>>,,>,>,,>,,>,,>,,>,,,>,,,>,,>,>,,,>,,>,>,,,,,,,,>,,,,,,>,,,,,,>,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',',,,',',,',',',',,',,,,>>>>,,,,>;-**&%%%$$$$###++..........+%=;>>>>>>>;;=%%&**=--;;>>,,''''''''>==-;>>;-*&%#............+@@$#$$$%&*****==-;>,,','','','''','''''','''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>;>;>;>;>;>;>>;>>;>;>>;>>;>;>;>;>;;>;>;>>;>>;;>;>;>>;>;>;;>>;>>;>;>;>>;>;>>;>;>>;>>>>;>>>;>>>;>>>>;>>>;>>>;>;>>>>>;>>>>;>>>;>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>>>>>>>>>,>>>,>>,>>,>,>,>>>>>>>>>>,>>,>>,>>,>>>,>>,>,>>,>>,>,>,,>,>>>,>>,>,>,>,>,>,>,,>,>,,>,>,,>,>,>,>,>,>,,>>,,>>,,>,,,>,>,,>,,,,>,>,>,,,,>,>,,,,,>,,,,,,>,,,,,,,,,,>,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,',,,,,,,,',',,,,,',,,,,,,,,,,,,',,,,,>>>>>>,,,,>;==*%%$$$$$$#@++...........#&-;>>>>>>;*&$$%&&**=-;;>>,,'''''''''=*=-==&$@+.............+@@#$$$$$&&&&&&**=-;,,'','''''',''''','''''',''''''','''','''''''''''''''''''''''''''''",
-">;;>;>;>;>>>;>;>>;>;>;;>>;>;>;;>;>;>;>;>>;>;>;;>;;>>>;>;>;>>;>>;>;>;;>;>>;>;>>>;>>;>>;>>;;>>;>;>>;>>;>;>>;>>>;>>>>>>;>;>>>>>>>;>>>>>>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>,>>,>>>,>,>>>>>>>>>>,>>>>>>>>,>,>,>,>>,>>,>>>>,>,>>,>,>>,>>,>>,>,>>,>,,>,>,>,>,>,>,>,>,>>,>,,>,>,>>,,>,>,,>,,,>,,,>,,,>,,,>,,,,>,,>,>,,,,,,>,>,,,,>,>,,,>,,>,,,,,>,,,>,,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,',,,,,,,,,',,,,,,,',',',',,,,',,,>>;;>>>>>>>;-=*&%%$$$$##@@.............#&-;;>;>;-&%%%%%%%&**=-;;>>,''''''''>***=**$+...............+@##$$$$%%%&&&&&*=-;>,,'',','''''''''''',''''','''''''''''''''''''''''''''''''''''''''",
-">>;>;>;>>;;>;>>;>;>;>>;;>;>;>>;>;>;>>>;;>;>;>>;>>>;;>;>;>;;>>;>;>;>>;>>;>>;>;;>>;>;>>>;>>>;>>>>;>>;>>>>;>>;>>>;>>;>>>>>>>;>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>,>>>,>,>,>,>>>>>>>,>>>,>>,>,>>>,>,>>,>>,>,>,>,>>,>,>>,>>,>>,>,>,>,>,>,,>,>,>,,>,,,>,>,,>,,>>,,>>,,>>,,>>,,>,>,,>,,,>,>,>,,,,,>,,,,,,,,,,,,,,>,,,,,>,,,,,,>,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,,,',,,',,',,,,,,,,,',,,,,,,,>;;;>>,>>>>;-*%%%$$$$##@++............+$*=-;;;;-&&&%%%%&%&&**--;;>>,'''''',*=---==%#.............++@##$$$$$%%%%%%%&&=->,,'',''',''',''',''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;;>>;>;;>;>;>;>>;>;>;>;>;>;>;;>>>;>>;>;>;;;>>;>;>;>>;;>>;>;>;>;>>;>;>>;>;>>;>;>>;>;>>;;>>;>>;>;>>>>>;>;>>>>>>>;>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>,>,>>,>,>>>,>>>,>,>>>,>,>,>>>,>>,>,>,>>,>,,>,>>,>,>,>,>,>>,>,>,>,>,>>,>,>>,>,,,>,,,>,,,>,,,,>,,,>,,,>,,,,,,,>,>,,,>,,>,>,,>,>,,,>,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,',,,,,,,,,,,',,,,,,,,,,',,',',',,',',,,,>;;-;;>;>;;;;-*&%$$$$$##++............+$&=-=----=&&&&%%%%%%%&&&=-;;>>,,''''-*-;>>>;-*$+............++###$$$$$%$%%%%&&*=;>,,'''''',''','''''''''''''''',''''''''''''''''''''''''''''''''''",
-";>>;>;>>;;>;>>;>;>;>;>;>;>>;>;>;>;>>;;;>;;>;>;>>>;;>;>;>;>;>;;>;>;>;>;;>;>>;>>>;>;>>;>>;>>;>>>;>>>>>>>;>;>>>>>>;>>;>>>>>>>;>>;>>>>>>>;>>;>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>,>>>,>,>>>>>>,>>,>,>,>,>>>>>>>>,>>>,>,>>,>>,>>,,>>>,>>,,>>,>,>,>>,>,>>>,>,>,>,>,>,>,,>,>,,>,>,,>,,>,,,,>,>,,>>,,>>,,>,>,,>,,,>,>,,>,>,>,,,,>,,,>,,,,,,,,,,,,,,>,,,,,,,>,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',',,,,,',,',,',,,,,,,,,,,,,,,,,,,,>>;---;;;;;;;-*&%%$$$##@++............%=;;;--===*&%**%%&%&&%&&&&*=-;;>>,,,;&=>,,,',,>-&+...........++@##$$$$$$$%%%%&&&*-;,,,',',''''''''''',''','''''''''''''''''''''''''''''''''''''''''",
-">;;>>;>;>>>;>;>;>;>;>;>>;>;>;>;>>;>;>>>;>>;>;>;>;>>;>;>>;>>;>>;>;>;>;>>>>;>;>;;>>>;>>;>>;>>;>;>>;>;>;>>>>;>;>;>>;>>;>>;>;>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>,>>>>>>>>,>,>,>,>>,>,>>>,>>,>>,>>>,,>>,>>>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>>,>,>,>,,,>,,,>,,,,>,,>,>,,,>,,,,,,,,>,,,>,,,,,>,>,,>,,>,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',',',',',',,',,,,>;-===------;=*%$%%$$##@+............%-,,,,>;---=*&%**%%%%%&%%&%&*=-;;;>>;**;,,'''''',>&@...........+@@#$$$%$%$$$%%%%&*=->,',''',','','',''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>;>;;>;>;>;>;>;>;;>;>;>;>;>;>;>;;>;>;>>;>;>;;>;>>;>;;>;>;>>;>>>;>;;>>>;>>>;;>>;>>;>>;>>>;>>>>;>>>;>>>>>>>>>>>>>>>>>>>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>,>,>>,>>>>>>>,>>>>>>>>>>>>,>,>,>>>>>>>>>,>>>>,>>,>>,>>,>,>>>,>,>,>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,,>,,>>,,>>,,>>,,,>,,,,>,,>,>,>,>,,,>,,,>,,>,,,,,,,,,,,,,,,,>,,,,>,,,,,,>,,,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,',,,,,,,,,,',',,',,',,,,,,,,,,,,',,,,,,>>>-=======---=*%%%%$$##@+...........$;'''',,,>;;-=*%&*&&%&%&%&&&%&&*=-;;-**->''''''''''>*@..........++@##$$%$%$%$%%%&&&*=;>,',,,'',''''''''''''''','''','''''''''''''''''''''''''''''''''",
-";;>;>;>;>>;>;>;>>;>>;>>;>;>>>;>;>;>;>>;>;>;;>;>;>>;>;;>;>>;>;>;;>;;>>;>>;;>>;>;>>;>>;>>>;>>;>>;;>>>>;>>>;>;>;>>;>>>;>>;>;>>>;>>>>>>;>>>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>,>,>>,>>>>>>>,>,>,>,>>,>,>>,>>,>>>>,>>,>,>>>,>,>>,>,>,,>>>,>,>,>,>,>,>,>>,>,>,,>,>,>,>,>,,>,>>,,>,,,>,,,>,,,,>,,>,>,,>,,,,,,,,,>,,,>,,,,,,,,,>,>,>,>,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,,,,,,,',,,,,',,',',',',,,,,,,,,>>;-=***====-=*&%&%$$##@++..........#;''''''',,,>>;-*%&*&%%&%&%%&&&&&*=--*&=>'''''''''''',*@..........++###$%%%$$$%%%%&&*=;>,,',,,,'',''''',''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>>;>;>;>;>;>;>;>;;>;>;>;>;>>;>;>>;>;>>;>;>>;>;>;>;>>>;>>;>;>;>>>;>;>;>>>;>>;>>;>>;>>>>;>;>>;>>;>>>>;>>>;>>>>>>>;>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>,>,>>>>>>>>,>>>,>>>,>>,>,>>,>>,>,,>>>,>,>>,>>,>,>,>>>,>,>,>,>,,>,>,>,>,,>,,>,,>>,>,,,>,>,>,,>>,,>,>,>,,,>,,>,,>,>,>,>,,,>,,,>,>,,>,,,,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,,,,,,,,,,',',,,,,,',,,,,,,,,,,,,',',,,,>,>>;-***&****=*&%%&%%$#@@+..........@-'''''''''',,,>;-*&&*&%%%&&%&%&&&&*=*&=>,''''''''''''''*@.........++@##$%%&%%$%%%&&&**-;>,,,,,',''',''''''',''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>;>;>;>>;>;>;>;>;>;>;>>;>;>;>;>;;>;>;>>;>;;>>;>;>;>;>>;;>;>;;>>>;>>;;>;>>>;;>>>;>;>>;>>;>>;>>>>>>;>>>;>>>>;>>>;>;>>>>>>>>;>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>>>>,>>>,>>,>>,>>,>>>>>>>,>,>,>>>,>,>>,>>>,>>,>,>>,>>>>,,>>,>,>>,>,>,>>,,,>,>,>,>,>>,>,>,>,>,>,>,>,,,>,,>,,>,>,>,,,>,,,,>,,>,,>,,>,,,,,,,,,>,,>,,,,,,,,,,>,,,>,,,,,,,,,>,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,',,',,,',,',',',',',,,,,,,,,>>;;-**&&&&****%%&&%$##@++.........+=''''''''''''',,,>-*&**&&%&%&%&%&%&&&&*;,''''''''''''''',*+.........++@##%&&%%%%%%%&&*==;>>,,,,,',''','''''''''',''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;;>;>;>;>;>;>;>;>;>>;>;>;>>;>;>;;>;>>;;>;>;>;>;>;>;>;>>>;;>>;>>;>>;;>>>;;>>>;>>;>>;>>>>;>;>>>;>>>;>>>>>>>>>>>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>,>>>,>,>,>>>>>>,>>>>>,>>,>>,>>,>>,>,>,,>>>,>,>,,>,>,>,>,>>>,>,>,>,,,>,>,>,,>,>,,>,>>>,,>,,>,,,>,,>>,,>>,,,>,,>,,>,,>,>,>,>,,,,,,>,,>,,>,,,,,>,,,>,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,>>>>;--*&&&&&&&&%%&&&%$#@++.........+&'''''''''''''''',,>-*&&*&%&%&%&&%&%&%*->,'''''''''''''''',&+........+++##%&&&&%%%&&&***=;;>>>,,,',''''''','''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>>;>;>;>;>;>;>;>;>;;>>>;>;>;>>;>>>;>;>>;>;>>;>;>>;>;>;>;>>;;>;>>;>>;>;>>>>;>>;>>;>;>;>;>>>>;>>>;>>>;>>;>;>>;>>>;>>>>>>>;>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>,>>>>>>,>>,>>>>,>>,>>>>>,>>>>>>,>>,>,>>,>,>>,>>,>>,>,>,>>,>>>,>,>>,>>>,>>>,>,>>,,>,>,>,>>,>,>,>,>,,>,>,,,,,>>,>,,>>,,>,,,>,,,,>,,>,,,,>,,,,,,,,,>,>,>,,,,,,,,>,>,,,,,,,,,,,,,,>,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,',,,,,,,,,,,',,',,',',,',,,',',',',,,,,,,,,>>;>--=&&&&&&&%%&&*&%$@@+..........%,'''''''''''''''',,,>-*&**&&%&%&%&%%%&->'''''''''''''''''''>%..........+@#$&***&%%&&&**=--;;>>>,,,','',''''''''''','''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>>;>>;>>;>>>;>;>>>;;>;>;>;>;>;;>;>;>;>>;;>;>;;>;>;>;>;>>>>;>;>;>;>>;>;>>;>>;>>>>>>>>>;>;>>>;>>>;>>>>>>>>>>>;>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>,>>>>>>,>>,>>>,>,>>>,>>>>,>>>,>>,>>>,>>>>>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>>>,>,,,>,>,,>,>,>,>,>,,>,,,>,>,,>,>,>,>,,,,,,,>,>,,>,,,,,,>,,,>,,>,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,',,,,,,,,,,,,,,,,',,,,,,,,,,',,,,>>>>;;--*&&%%%%%%&&*&*%#@++.........#;'''''''''''''''''',,,>;*&&**%&%&%%&%&-;,'''''''''''''''''''';#.........++@$&*===*%&***==-;;;>>>,,,',''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>>;>;>;>;>;>;>;>;>;>;;;>>;>;>;>;>;>>;>;>;>;>>;>>;>>;>;>;>>;>;;>>;>>;>>;>>;>;>>;>>;;>;>;>;>>>>>;>>>;>>>>;>>>;>;>>>>>>;>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>,>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>,>>>>,>>>,>>,>>,>,>>,>,>>>,,>,>,>>,>>,>>>,>,>,>,>,>>,>>,>,>,>,>,>,>,>>,,>,,>,>,,,>,,>,>,,,>,,>,,>,,,>,>,>,>,,,>,,,,,,,>,>,>,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,',',,',,',,,,',',',,,,,,,>,>>>>;-==&&&&%%%&&***&$#++.........@='''''''''''''''''',,'',>;*&***&%%&%%&=;,''''''''''''''''''''''*+..........+#%*==-=*&&*==--;;>>>>>,,,,',''''',''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>>;;>>;>;>;>;>;>;>;>;>>>;;>;>;>;>;>;;>;>;>;>;;>>;>;>;>>;>;>;>>>;>;>;>>;>>;>>>;>>;>>>>>;>>>>;>;>>;>;>>>>;>>;>>>>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>,>>>>>,>>,>>>>,>,>>>,>>>>,>>>,>>,>>>>,>>>,>,>>,>,>>,>>,>>,,>,>,>>,>,>,>,,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,>,,,>>,,>,,>,,>,,,,,,>,,>,,,>,>,>,,,,,,,>,,>,>,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,',,',,,,,,,',,,,,,,,,,',,,',,,,,,,',,,,,,>,>>;;;-=*&&%%%%&&****&#@+.........+&>''''''''''''''''''',,',,>-*&***&&%%&=;>,'''''''''''''''''''''',&.........++@$*=--;-*&=--;;;;>>>,>,,,,''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;;>>;;>;>;>>;>;>;>>;>;>;>>;>;>>>;>;>>;>;>>;>>;;>;>;>;>;>;>>>;;>;>>>;>;>;>>>;>>;>;>;>;>>;>;>>>>;>>>>>;>>>>>>>;>>>>;>>>>>>;>>>>>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>,>>>>>>>,>>>>>>,>>>,>>>,>>>,>>,>,>>>,>>>>>,>>>,>,>,>,>>>,>>,>,>,>>,>>>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>>,,,>,>,>,>,,>,>,>,,,,>,>,,,,,,,>,>,>,,,,,,,>,,>,,,,,>,,>,,,,,,>,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,,,,',,,',,,,,,,,',',',,,,,,,,,>>>>;;-==*&&&%%%***=**%@++.........#-''''''''''''''''''',,,''',>;*&***&&&*;>'''''''''''''''''''''''''-#..........+#&*=--;;*&*-;;;>>>>>>,,,,,','''''',''',''''''''''''''''''''''''''''''''''''''",
-";>;>;>>;>>;>;>;;>;>;>;;>;>;>;>;>>;;;>>;>;>;>>;>;>;>>;>;>>;>;>;;>;>>>;>;>>;>>;>;>;>>>>>>;>;>>>>>;>;>>>;>;>>;>>;>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>,>,>>>>>,>>,>>>,>>>,>>>,>>,>>>,>,>>,>,>,>,>,>>>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,>,,,>>,,,>,,,>,,>,,,>,>,,,,>,>,>,,,,,,,,>,>,,,,,,,,,>,,,,,,,,>,,,,,,,,,,>,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,',,,',,',',,,,,,',,',,,>,,>>>;;-=**&&%%&****=*&#+..........+*,''''''''''''''''''',,,'''',>;*&&*&&*;>>''''''''''''''''''''''''''&+.........+@$*=---;;=*=;;>>>>,>,,,,,''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;;>;>>;>;>>;>;>;>>;>>;>;>;>;>>;>;>;>;>;;>;>;>;;>;>;;>;>>>;>>;;>>;>;>;>;>;>>>;;>;;>>>>>;>;>>>>>;>>>>>>>>>>>;>>>>;>>;>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>,>>>>,>>>>>,>>>,>>>>>>>,>>>,>>>,>>>,>>>,>>>>>,>,>>>,>>,>>>>,>>,,>,>>,>>>,>,>>>,,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,>,,,>>,,,>>,,>,>,>,,,>,,>,>,>,,,,,,>,>,>,>,,,,,>,,>,,>,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,,',,,,,,,,,',,,,,,,,',',,,,,,,,,>,>>>;;-=**&&%%&&***=**%@+..........%>'''''''''''''''''''',>,,'''',,>-*&*=;;>''''''''''''''''''''''''''';$..........+@%&==-;;;=&*->>,>,>>>,,,,'',''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;>;;>;>>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>>;>;>;>>;>;>>;>>;;>>;>>>;>;>;>>;>>>;>>>>>>>;>;>>;>>>;>;>>;>;>>;>;>>>>>;>>>>>>>>>>;>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>,>>,>>>>>>>>,>>>,>>>,>>>,>,>>>>,>>,>>>,,>,>,>>>,>,>,>,>,>>,,>>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,,>>,,,>,,,>,>,,,,>,>,,>,,,>,,>,>,,,,,,,,,,>,,>,,,,,,,,,>,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,,,,,',,',',,,,,',,',,,,,',',,,,,,,,>,>;--=*&&%%&***=*=&$@+..........@=,'''''''''''''''''''',,,,''''',,>>;;>>>,''''''''''''''''''''''''''''*+..........+@$&==--;;-&&->>>,>,>,,,,'''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>>;>;;>;>;>;>;>;;>>;>;>;>;;>;>;>>;>;>;>>;>;>>;>;>;;>;>;>;>;>;>>>;>>;>;>;>;>;;>>;>;>>>;>>>>>>>;>>>>>>;>>;>>>;>>>;>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>,>,>>>,>>>,>>>,>>>>,>,>,>>,>,>>>>>>>,,>>,>>,>,>>,,>>,>>,>>>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,>,>,>,,>,>,>,,,,>,,,>,,>,,,,>,>,>,>,>,,,,,,,>,>,>,,,,,,,,,>,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,',',,,,,,',,,,>,>>;;-=**&%&*******&#+...........+%>'''''''''''''''''''',,>>,'''''''',,>>>>'''''''''''''''''''''''''''''>%...........++@&*=--;;-*%->>,>,,,,,',''',''',''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>>>;>>;>>;>;>>>;>;>;>;>>;>;>;>;>;>>;;>;>;>;>;>;>>>;>;>>;>>;>;>;>>;>>>;>>;>>;>>>>;>>>;>;>;>>>>;>>;>>>>>>;>>>;>>>;>>>>>>>;>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>,>>>,>>>>>,>>,>>>>>>>>>,>>>,>>>,>>,>,>>>,>>,>>>>,,>,,>,>>,>>,>>,>,>>>,>,,>,>,>,>,>,>,>,>,>,,,>,>,,>,,>,,>,,,>,>,,>,,>,,>,>,>,,>,>,,,,>,>,,,,,,,,,,>,>,,>,,,,,,,>,>,,,,,,,>,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,',,',,,,',,',,',,',,,,',,,,,',',,,,,',,,,,>;;-=*&%&*=**=**&@++...........@=,''''''''''''''''''''>-==;,''''''',,,>>,''''''''''''''''''''''''''''''=@...........+++%*=--;;;*&=>,,,>,,,''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;;;>;>;>;>;>;;;;>>;>>;>;>;>;>;>;>;;>>;>;>;>;>;>;>;>>;>;>>;>;>;>;>>>;>>;>>>>>;>;>>>;>>;>>>;>;>>>>>>;>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>,>>>>>,>>>>>>>>>>,>>>>>>>,>>,>>,>>>,>>>,>>>>>,>>,>>>>>,>,>>>,>>>>,>>,>,>,>,>,,>,>>>,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,>,>>,,>,,>,>,,>,,,,>,,>,,,>,>,,,,,,>,>,>,>,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,',',,,,',',,,,,,,>>;-=*&%*===***&$@++............%>''''''''''''''''''''-&%%%&='''''''',>>,''''''''''''''''''''''''''''''';$............+.+#&*--;;>=*=>,,,,,'',''''''''',''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>>>;>;>;>;>;>>>>>;>;>;>;>>;>;>;>;>>;>>;>;>;>;>;>;>;>>;>;>;>>;>>;>;>>;>>;>;;>>;>>>;>>>>>;>>>>>;>>;>>>>>>;>>;>>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>,>,>,>>>>>,>>>,>>>,>>>,>,>>,>>,>,,>>>,>,>>,,>,>,>>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,,,,>,,>,,,>,>,>,>,,>,,>,,,>,>,>,>,,,,,,,,>,,>,>,,>,,,,>,,,>,,,>,,,,,>,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,',,,,,,',,',,,,,',,,,,',,,,,,,',,,,,>>;-*&&*==****&$@++............@*,'''''''''''''''''''-&%%%&&&-''''''',,>,,,''''''''''''''''''''''''''''',*+............+.+@%*=-;;>;*->,,'',''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>>;>;;>;>>;>;>;>;>;;;>;>;>>;>;>>;>>;>;>;;>>;>;>;>;>;>>;>;>>>;>;>>;>>;>;>>>;>>>>;>>>;>>>;>;>>>;>;>>>>>;>>>;>>>>>>>;>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>,>>>>>>>>,>>>>>,>>>,>>>,>>>>,>>>,>>>>>,>>,>,>>>>>,>>,>>,>>,>,>,>,>>>,>,>,>,>,>,>,>,>>,>,,,>,,>,>,>>,>,,>,>>,>,,>,,,>,,,>,,>,,>,,,,,,,>,>,>,,,,,,,,,,,>,,,>,,,,,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,',,,',,,,',,,',',,,',',,',,,,,,,>>;-&&=-=*=**%@+++++...........$;'''''''''''''''''''>&%%%=;,,'''''''',;-;,,''''''''''''''''''''''''''''''-#...........++...+$*==;;>>->,,,''','','''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;;;>;>>;>>;>;>;>;>;>>>;>;>;;>;>;;>;>;>>;>>;;>;>>;>>;>;;>>;>;;>>>;;>;>>>>>;;>>;>;>>;>>;>;>>>>;>>>>>>;>>>>>;>>>;>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>,>>>>>,>>>>>>>,>>>>>>,>,>>>,>>>,>>>,>>>,>>,>,>,>>,>>>,>,,>>,>,>,>,>,>>,>>,>,,>,>,>,>,>,>,>,>,,>,,>>,>,>,>,>,,>,>,>,,,,>,,>,>,,>,,,>,,,,,>,>,>,,,,,,,>,>,,>,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,',,,,,,,,','',,,>>-&*---==*&%@+++@+++.........+&>''''''''''',,'',;,,;&%%*>>'''''''''';=*;,,''''''''''''''''''''''''''''''>%+........+++++....#&=--;>>>,,',''''''''','''''''''''''''''''''''''''''''''''''''''''",
-";>;>>>;>;>;;>;>>;>>;>;>;;>;>;>>;>;>>;>;>;>;>;>>;>;>>;;>>>;>;>>>>;;>>>>>;;>;>>>;>;>>>;>;>>>>;>;>>>;>;>>>;>>;>>;>>>;>;>>>>>>;>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>>>>>,>>>>,>>,>>>>>,>>>,>>>,>>>,>>,>>,>>>>,>>,>,>>>,>>,>>>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,,,>,>,,>,,>,,,>,,>,>,,>,,,>,,>>,,>>,>,,,,,,,>,>,>,,,,,,,,,,,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,',,',,',,,,,',,',,,,',',',',,,',',',,',,,',,,;**-;-==*&$@+++@@@@+++.......#=''''''''''',>>,',-->-&%&=>,'''''''''>=&*>,,'''''''''''''''''''''''''''''',*@........++++......@%*-;>,,>,,''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;;>;>;>>;>;;>;>;>>;>>;>;>;>;>>;;>;>;>;>;>;;>;>;;>>;;;>;>>;;;>>>;;>;>>>>;>;>>>>;>;>>>;>>>>>>;>>;>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>,>>>>>>>>>,>,>>>,>>>>>>>,>,>>>,>>>,>>>,>>,>>,>>,>,>>,>,>>,,>>,>>,,>,>>>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,,>,,>,,,>,,,>,,,,>,>,>,>,,,,,,>,,>,>,,>,>,,,,>,,,>,,,>,,,,,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,',,'',,',>-*;;;-=*%#+++.++###@++.......$;'''''''''',>;>>',-*--&%&=;,'''''''''-&%*;,>,'''''',,,,'''''''''''''''''''';$......++@@+++......+$*-;,,,,,,'''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;;>>;>>;>;>;>>;>;>;>;;>>;>;>>;;>>>;>;>;>;>;>>>;>>;>;>>>;>;>>>>;;>>;>;>;;>>;>>;>;>>>>;>>>;>;>>>;>>>>;>>;>;>>>;>;>>>>>>;>>>>;>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>,>>,>>>>>>,>>>,>>>,>>,>>,>>>,>>>>,>>>,>>,>,>,>>>>>,,,>,>>>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>>,,>,,,>,,,,>,,>,>,,,>,,>,>,,,>,,,,,,,,,,>,>,,,,,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,,,',',,',',,,,,,',,',,,',',',,,,',,',,,;=;>;-=*%@@+++.+@#$$#@++.....+&,'''''','''>;;>,,,;**=&&&*>>,,,,'''',*&&&>,>;,''',,,>,,''''''''''''''''''',>&+.....++@@@@+++......#*->,,,,,,'','''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>;>;>;>;>;>;>;>;>>;>;>>;;>>;;>;>;>;>;>;>;>;;>;>;>;>;>>;;>>>;>;>>;>>>;>>;>;>>;;>>>;>>>>>;>>>;>;>>>>>>>>;>>>>>;>>>>>>;>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>>>>>>>>,>>,>,>>>>>>>,>,>>>,>>>,>>>,>>,>>,>>,>,>,>,>,>>>,>>>,>,>,>>>,>>,,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>>,,>>,>,>,>,,>,>,,,,,,>,>,,>,>,>,>,,,,,>,>,,>,>,,>,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,,,,,,,,,,',,',,,,,',,,,,,,,',','',',>;;;;;-*$@@++..++@$%%$#@++....@=,''''',,,,,>>>>,,,>=&*&&&*--=***;''',*&&=>,;--;>>>>,,,''',','''''''''''''''>*@....++@@@@@@++.......#*;>,,,,,,''''','''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>;>;>;>;>;;>;>;;>>;;>>;>>>;>;>;>;;>>>;>;>;>;>;>>>;>;>>;>;>>;>>>;>>>;>>>;>>;>;>;>>>;>>>>>;>;>>;>>>>;>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>,>>>>>>>>>>,>>,>>>>,>>>,>>>,>>>,>>,>,>>>,>>>>,>>,,>>,,>>,>,>,>,>,,>>>>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,,,,>,,,>,,,>,,>,,>,>,>,>,,,>,,,,,,,,,>,>,,,,,,,,,,,,,>,>,,>,,,>,,>,,,>,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,',,,,,,,,,,,,',,',,,,,,,',',,,',',',,,,',',',,;>>>;-*#@+++.+.+#%%%%$#@++....$;''',>>>>',;;-;;;;;>;*&&&&&**&&&&*,'',;**;'';**-;>,,,>>>,,,,,,,'''''''''''',,;#....++@##@#$$#++......#=;,,',,,'''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>;>>;>;>>>;>;>>;>;>>;>;;;>;>;>;>>;;;>;>;>;>>>;;>;>>;>;>>;>>>;;>>;>>;>;>>;>>>>>>;>;>>;>>>>>>>>>>>;>>>>>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>,>>>,>>>>>>,>>>,>>>,>>>,>>>>>>>>,>>>,>,>>,>>>,>>>,>,>,>,>,>>>,,,>,>,>,>,>,>,>,>,>,,>,,>>,>,>,>,>,>,>,>,,>,,>,,>,,,,>,,,,>,,,>,>,>,>,,,,,>,,>,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,',',,,,,,',,',,,,,',,,,,,,',,,',',''>>,>;-*$@+++++@#$%&&%%$##@+....&;,''=**=>,>********=;-=*&*&&*&**&*>''',>>,''>=**-;;;===;>>>>>>;;;;;>'''''''',;%+...+@@##@#%&&%#@+....+$=>,,',,,''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;>>;>;;;>>;>;>;>;;>;>>>;>;>>;>;>>>>;>>;>;;>>;>>;;>>>;>>;;>>>>;>;>>>>;>>;>;>;>>>>;>>>;>>;>;>;>>>>>;>>>;>>>>>>>>;>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>,>>>>>>>>>>>>>,>>>,>>,>>>,>>>,>>>,>,>>,>,,>,>>,>,>>>,>>,,>>,>,>>>,>,>>,>,,>>>>>,>,>,>,>,>,>,>,>,,>>,,,>,>,,>,>,,,>,,>,>,,>,,>,>,,>,>,>,>,,,,,,,,>,>,,,>,,,,,,,,>,,,>,,,,,,,,,,,>,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,',,',,,,,,,,,',,',',',,,',,,',',,,,>>;*%@+++@#$%%&&&%%%%$@@+...+*,'',=**=,,;**&******->;=*********-''''>>-;,'>=***==**=;,>>>>-=******-;''''',,>&+...++#####%***&%##+...@%=>,,,>,,'''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>>;>;>>;>;>;>>>;;>;>;>;>>;>>;;>;>;>;>;>;;;>;>;>>>;>>;>;>>;;>;>>>>;>;>>>>;;>>>>>>>;>>;>;>>;>>>>>>>>>>;>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>,>>>,>>>>>,>>,>>>>>>>>>>,>>>,>>>,>>>>>,>>,>>>,>>,>>,>,>,>>>,>,>,>,>>>,>,>,>>,,,,>,>,>,>,>,>,>,>,>>,,,>>,>,,>,>,,>>,,>,>,,>,>,,,,>,,>,,,,,>,>,>,>,,,,,>,,,,,>,,>,,,,>,,,>,,,,,,>,,,,,>,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,,,,,,,,',',,',,,',,,,,,',,,,',','',,,>>=&#@+@#$%%&&=;-&&%$$#@+...#=>,',=**=,,;***->;***-,,;-*****--;,''''>==;''>-*******->>>>>-**********-,''''>>=@...+@#####&-;-=*&%%#+.+#&;,,',>,,''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;;>>;>;;>;>;>;>;>>;>;>>;>;>;>>;>>;>;>;>;>>>;>;>;;>;>;>;>>;>>>;>;>;>>>;>;>>;>;>;>;>>>>>>>>>>>;>;>>;>>>>>>>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>,>>>,>>>,>,>>>,>>>,>>,>>>,>>>,>>,>>,>>,>>,,,>,>>,>,>>>>,>,>,>,>,>,>,>,>,,>>>,,,>,>,>,>,,,,>,,>,>,,,>,>,,>,,,>,>,,,,,,,,,>,>,,,>,>,,,,,,>,,,,,,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,',,,,',,',,',',,,,,,,,',,,,',,',,,,',,',',,,,,,-*%##$$%&&*->,>;&%%%##@++..$;,'',-**-,,;=*=->>===-,'>;=**=,'''''''>-==,'',-=**=*==;,>;;;==*==---==*=;,,',,>-#...+@####$&-;>>;-*&%$#+@$*-,,,>>','''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;;>;>>;>;>;>;>;>;>>;;>;>;>;;>;>;>>;>;>;>;>;>;>>;>>;>>;>;>;>;>>;>>;>>;>>;>>>;>>>>;>;>;>;>;>>>>>>>>;>;>>;>>>;>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>,>>,>>>>>>,>>>>,>>>,>>>>>,>>>,>>>,>>,>>>,>>,>,>,>>,>>,>>>>,>,>,>,>,,>,>,>,>,>,>,>,>,,>,,,,>>,>,>,,,>,>>,>,,>,,>,,>,,>,,>,>,,>,>,>,>,>,,,,>,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,',',,',,,,',,',',,',,'',,',,>=*%%%%&&*;,,,,>;*&%%$#@++.+%;>'',-==-,>;===-;-===;,',;-===,'''''''>==-,''';====-->,,>;--===->,,,-===;,,,,,>;$+.++@####$&-;>,,,>;=&%$##%*;,,;;,''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;;>>>;>;>;>;>;>;>;>;;>>;>;>;>>;>;>;>>;>;>;>;>>;>;>;>>;>>;>>;>>;>>;>>;>>;>>>;>>>;>>>;>>>>>>>>;>>;>>>>>>;>>;>>>>>>>;>>>>;>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>>>,>>>,>>>>>>>>>>,>,>>>>,>>>,>>>>,>,>>>,>>,>,>>>,>,>,>,>>>,>,>>,>,>,,>>,>,>>,>>>,>,>,>,>,>,>,>,>,>,>>>,,>,,>,>,>,,,,>,>,,>,>,,>,,,>,,,>,,,,,,,,,,,>,,,>,,>,,,>,,>,,,,>,,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,',,,,,,,,,,,',,,',,,,,,,,,,,',',,,,,,,',,',,',,',>;=**&&&=;,,,,,,>;&&%%$#@++.+&;,,',-==-,>;-===---=-,''>>-==-,'''''',;-=;''',;==-->,,''>---===>''',;-=-;>>,,>>>%+.++@##$#$&-;>>,,',>;*&&%%&=;>;;>,'''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;>;;>>;>;>;>;>;>;>>;>;>>;>;>;>;>;>;>;>;>;>;;>;>;>>;>;>;>;>>;>>;>>;>>;>>;>;>>;>>;>>>;>;>;>;>>>>>;>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>,>,>>>>>>,>>>,>>>,>,>>>>>,>,>>,>>,>,>>>>>>,>,>>>,>>,>>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,,>>,>,,,>,>>,,,>,>,,,>,,>,,,>,,,>,>,>,>,>,,,>,,,,,,,,,,,,,,>,,,,,>,,>,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,,',,,',,,',,',,',',,,,',',',,,',,',',,,,>;-*&**;,,,,',',,;*&%%%##++.@*;,,'>;--;'>;-------;>''',;----,''''',>;---,''';---;>,''',;=----,'',>--;;;;>,',>>&@.+@@$#$#%*-;>>,,,'''>-*&&&&*--->''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>;>;;>>;>;>;>;>>;>;>;>;>;>;>>;>;>;>;>;>;>;>>;>>;>;>>;>>;>;;>;>>;>>;>>>;>>>;>>>>>;>;>>>>>>>>>;>>>>>>>;>>>;>>;>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>>>>,>>>>,>>>,>>>>>,>,>>>>,>>>,>>>,>,,>,>,>,,>,>,>>,>,>,>>,,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>>,>,,,>,>,,,>,>,,,>,>,,>,>,,,,,,,,,>,,,>,>,,>,,>,,>,,,,,>,,,,,,,,,,,,,,>,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,',,',,,',,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,>,>>--*=;>,,,',,,,,>>*&&%%#@@+.#*>>,,>---;',;---;>>,'''''>;----''''',>;---;''',;---;>>'''';----;>,,,>>;;;;;;,,,>>*@.++##$#$$*-;>>,,',''',>-**&&&&-,''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>>;>>;>;>;>;>>;>;>;>;>;>;>;;>;>;>;>;>>;>>;>;>;>;>;>;>;>>>>;>>;>>;>>;;>>;>>>;>;>>>>>>;>;>;>>>>>;>>;>>>>>>>>>>>;>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>,>>,>>,>>>,>>>>,>>>>,>>>,>,>>>>,>,>>,>,>>,>>>>>,>>>>>>>,>>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,>,,,>,>,>,>>,>,,,,,,>>,,>,>>,,,,>,>,,>,,>,,>,>,>,,>,,>,,,,,>,,,,,>,,,>,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,,',,',,',,',',,',,,',',',,','',',,>>;;--;>,,',',',',,,>=&%&%$@@++#->>,,;;--;',>;-;>''''''''>;;;-;,''''>;;;;-;,''';-;-;;>,''',;-;-;;>>>;>;;;;;>'',>>=#.+@##$$$%*-;>>,,,'''''',>-=**=>,''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>;>;;>;>>>;>;;>;>;>;>>;>>;>>;>;>;>;>;>;>;>;>;>>>;>>>;>;>;>>;>>;>>;>>>;>;>;>>>>>;>;>;>>>>>>;>;>>>>>>;>;>>>;>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>,>>>,>,>>>,>>>>>>,>>>>,>>>>,>>>,>,>,>,,>,,>,>,>>>,>,>,>,>,>,>>>,>,>,>,>,>,>,>>,,>,>,>,,>,>,>>>,,,>,,,,,>>,>,,,>,,>,,>,,,,,,>,,,,,,,>,,,,,>,,,,,,,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,',,,,,,,',,,',,,,,,,',,,,',,,>>;;;>,',',,,',',,,,>=&&%%$#@++$->>,>;-;;>''>;;;>''''''',>;;;;>'''',,;-;;;;''',;;;;;;>'''''>;;;;;;;;;;;;;;;,'',>>-#++@#$$#$%=;;>>,,,','''''',,>>>''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;;>;>;>>;>;>;>;>>;>;>;>;;>;;>;>;>>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>>;>>;>>;>>>>;>>;>;>>>>>>>;>;>>>>>>>;>>;>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>>>,>>>>,>>,>>>,>>>>>>>>>,>>>,>,>,>>,>,>>,>,>>,>,>>,>>>>,>>>>,>>,,>,>>>,>,>,>>,,>,>,>,>,>,>,>,,,>,>,,,>,>,,>,,,,>,>,>>,>,,,,,>,,,>,,,,,>,>,,,,>,>,>,,,>,,>,,,>,,>,,>,,,,,,,,,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,',,',,,,,',',,,,',',,,,',,,',',',,,',',,,',,,,,,',',,'',,,,',,,>-&&&%$#@++%;>>,,>;;;;'',;;>>''''''',;;;;;>''''',>;;;;;,'''>;;;;;,'''''',>;;;;;>;;;;;;>,'',>>-#++@##$$$&=-;>>,,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>;>;>;>;>;>>;>;>;>;>>;>>;>;>;;>>;>>;>;>;>>;>;>>;>;>>;>;>>;>;>>;>>;>>;;>>>>>;>>;>;>;>>;>>>;>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>,>>,>>,>>>,>>>>>>>,>>>>,>>>>,>>>>,>>,,>>>,,>>,>>>,>,,>>,>,>,,>>,>,>,>,>,>,>,>>>,,>,>>,,>,>,>,>,>,,,,>,,>,>,>,,>,,,>,>,,,,>,>,,,,,,>,,,,,,,,,,,,,>,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,,',',,,,,,,,,,,,',',,,',,,,,,',',,,,',,,',,,',,,',,,'',',,,,,;*%&%$#@@@%;>>,',,,,''',,,,,''''''',>>;>>''''''',>;>>>''''>;>>>>'''''''',,>>>>;>>>;>>,''',>>;$++##$$$%&-;;>,,,,,',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>>;>;>;>;>;;>>;>>;>;>;>;>>;>>;;>>;>;>;>;;>;>;>;>>;>;>>;>;>>;>>;>;>;>>>;;>;>>;>>>;>>>>>>;>>>>>>;>;>>;>>>>;>>>;>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>,>>,>>,>>>>>>,>>>,>>>,>,>,>>,>,>>,>,>>,>,>,>,>>,,>>>,>,>,>,>>,>,>>,>>,,>,>,>,>,>,>,>,,,,>,>,,>>,>,,,>,>,,>>,,>,,>,,,,>,,>,>,,>,>,,,,,>,>,>,,>,,>,,>,>,,>,,,,,>,>,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,',,,,,,,,',,',',,,,,,,,',,,',',,,,,',',',',,,',',',',',,,,',,',,>>*&&&%##@@&;>>,'''''''''''''',,,,,,,>>>>,'''''''',,>>,''''',>>,''''''''''',,>>>>>>>,,'''',>>;$+@##$$$%*-;;>>,,'''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>>;>;>;>>;>;>;>;>;>;>;;>;>>;;>;>>;>;>>>;>>;>>;>>;>;>>;>>;>;>>>>>>;>>>>>>>>;>>>;>;>;>>>;>;>>>>>;>>>>>>>;>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>,>>>,>>>>>>>,>>>,>>,>>,>>>,>>>,>>>,,>>,>,>>>,,>>,>,>>,>>,>,>,>,>,>,>,>,>>,>,>,,,>,>,>,,,>,,,>,,>,,>>,>,,>,,,>,,,,,>,>,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,,,,,,,,',',',,,,',,,,,',',,',,,,,',',,,,,',,','',,',,,,,>=&&&%$@@@&;>>''''''''''''','',,,,',,,,'''''''''''','''''''''''''''''''''''',',',''''''''>>>;$+@##$$%%*-;;>,,,,','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;;>;>;>;>;;>;>;>;>;>;>>;>;>;>>;>;>;>>;;>;>;>;>;>;>>;>;>;>>>>;;>;;>>;>;>;>;>>;>>>>>>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>,>,>>,>>,>>>,>,>>>,>>>,>,>,>>,>>>,>>,>>,>>,>,>>,>>>>,>>>,,,>>,>,>,>,>,>,,>,>,>,>,>,>,>,,>,,>,>>,>,>,,>>,,>>,,>,>,,,,,,>,,>,,,>,>,,,,,>,>,>,,>,>,>,>,,>,,,>,,,,,,,,>,,,,>,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,',,',,,,,',,,,,',,',,',,,,,,',',,',,',,,',,,','',,,,','',,',',,,',',',,,>-*&&%$#@@&;>>,''''''''''''',,,,>,,,,'''''''''''''''''''''''''''''''''''''''''''''''''''',;>;%@@#$$%&&=;;>>>,,'','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>>;>>;>;>>>;>;>;>;>>;>;>;>;>;;>;>;>;;>>;>>;>>;>>;>;>;>>>;>;>>;>>>>;>>>>>>>>>>;>;>;>;>>;>>;>>;>>;>>>>>>>;>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>,>>>>>>>>>,>>>>>>,>>>>>,>>>,>>>>>>>>,>,>>>,>>,>>,>,>,>,>,,>>,,>>>>,>,>,>>,>,>,>>,>,>,>,>,>,,>,>,>,,>,,,,>,>,,,>,,>,>,,,>,>,>,,>,,>,>,,,,>,>,,,,,,>,,,,,,,,,,,>,,,,,,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',',,,,,,,,,,,,,',,,,,,,',,',,,',',,,,,',',,,',',,,'',,',,',,,>;**&&%##@&;;>,''''''''''',,',,>>>>,,,'''''''''''''''''''''''''''''''''''''''''''''''''''>>;;$@##$$&%&-;;>>,,,,''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>;>;>;>;>;;;>;>>>;>;>;>;>>;>;>>;>;>;>>;;>;>;>;>;>>;>;>>;;>>>;>>>;>;>;>;>;>;>;>>>>>>>>>;>>>>>>>>>>>;>>>;>>>>>>>;>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>,>>>>>>,>,>>>>>>>,>>>>>>,>>>,>>>>,>,>,>>,>>,>>>,>>,>>>,>>,>>>,>,>>,,>,>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>>,>,>>,>,,>>,,>,,,>,>,,,>,,>,,>,,,>,>,,,,,>,>,,,,,>,,,>,,>,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,',,,,,,,,,,,,,,,',',,',,',',,',',',,,,,,',,,,,',',',,',',,,',',,,',,',',,,>>***&%$##&;>>>''''''''',,',,,,>>>>,,,,''''''''''''''''''''''''''''''''''''''''''''''''''>>>;%@##%%&&*-;;>>,,',,,'',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>;>;>;>;>>>;>;;>>;>;>;>;;>>;>;>;>>;>;>>;>>>;>>;>;>>>;>>;>;>>>;>>;>>>;>>>>>>>;>;>;>;>>>>;>>;>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>,>>>,>>,>>>,>>>,>,>>>>>>,>>,>,>,>>,>>,,>>,>>,>>,>>>,>>,>>,>,>,>,,>,>,>,>,>,>,>,>,>,,>,,,>,>,>,,>,,,>,,>,>,,>,>,,>,,,>,,>,,,,,>,>,,,,>,>,,,>,,,,,,,>,,,,,,,,,,,,,>,,>,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,,,,,,,,,,,,,,,,,,,',',,',',',,',,,,',,,'',,',,',',',',',,>>-&**%$##&;;>>'''''',',',,,,,,>>>;>>,,,','''''''''''',,,,,''''''''''''''''''''''''''''',>;;;%##$%&&&=;;>>>,,,''','',','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;>;>;>;>;>;>;>>;;>;>;>;>>;;>;>;>;>;>;>;>;;>>;>>;>>;;>;>>>>;>;>>;>>;>>>>;>;>;>>>>>>>>>;>>>;>>>>>;>>>>>>>>>;>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>>>,>>>,>>>>>,>,>,>>,>>>>>,>>>,>>>,>,>,>,>>,,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>,,>,>,>>,>,,,>,,>,>,,>,>,>,>,,,>,,>,,,>,,>,>,,,,,>,,,,,,>,,,,>,,>,,,,>,,>,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,',,,,',,,,',,,',,',',',,',',',',',,,,',,,',,',,',',,'',,,',',',,,',,',,',,>;***&%##&;;>>,'''',',,,,,,,,,>;;;;>>>>,,>,,,'''',,,,,,>,,,,''''''''''''''''''''''''''',>>;;%##%&&&*-;;>>,,,,,,','','''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;>;>;;>>;>;>>;>;>>;>;>;>;>>;>;>>;>;>;>;>;>>>>;>;>;>>;>>;>>;>;>>>>>>>;>;>;>;>>>>>>>>;>>>>>>;>>;>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>,>>,>>>>,>>>>,>>>>>>,>>,>>,>,>>>>,>>>,>,>>>>>>,>>>,>,>>>,>>>,>>,>>>,>,>>>,>,>,>,>,>>>,,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,,>,>,,>,,,>,,>,,,,>,>,,>,,,,,>,>,,,>,>,,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,',,,',,,',,,,',,',,',',',',',,,,>;=***%$$&-;;>,,,',,,,,,,,,,>,>>;;;;;>>>>>>>>,,,,',,>>>>;>>>,,,,,,,,',',',',,',','''',,>>;>-%#$&&*&*->>>>>,,,'',',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>>;>>;>;>;>>;>;>>;;>;>;>;>>;>;>;;>;>;>;>>;>;>>;>;>;>;>>>>;>>;>>;>>>;>;>;>;>>>>>;>>>>;>;>>>>;>>;>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>>,>>>>,>>>>>>>>,>>>,>>>>>,>,>,>>,>>,>>,>,>,>,>,>>,,>>>,>,>,>>>,>>>,,,>>,>,>,>,>,>,>,>,>,>,,,>,>,,>,>,,>,>,,>,,>>,,>,,>,>,,,>,,,>,>,,,,,>,,,,,>,,,,,>,>,,>,>,,>,,,>,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,',,,,,,',,',,',,,',,',',',',',',,',',,',,',,,',,','',',,',',,',,',,',,,,>>-***&%$&-;;>,,,,,',,,,,,,,,>>>;----;;;;;;;;>,,,,,,>>;;;;>>,,,,,,,,,,,,,,,',,,',,,,,',,>;;-%$&&**&-;>>>,,,,',,',',''',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>>;>;>>;>;>>;>;>>>;>>;>;>>>;;>;>>;>>;>;>>>;>>>>>>>;>>>>>;>>>>>;>>>>>>>>>>>>;>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>>>,>>,>>>,>,>>>>>>>>,>>,>>,>>>>>,>>>,>>>,,>,>>,>,>,>,,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,,>,,>,>,,,>,,>,>,,>,,>,>,,>,,>,>,,,>,>,,,,>,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,',,,,,,,,,,,,,,,,,',,,',,,,,,,,,,',,,,,,',,',',',,',,,,,,',',,,',,',',',,,,,>>;**=*&$&=;;;>,,,,,,,,,,,,,,,>>;-----;-;;-;-;>>,,,>>;;--;;>>>>,,,,,,,,',,,,,,,,,,,,,,,>>;>-&%&****;;>>>>,,,,'',',',,''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>;>;>;>;>;>;>;>>;>;>;;>;>;>;>;>;>>;>;;>>;>;>>;;>>>>;>>;>>>>;>;>>>;>;>;>>;>;>>>>>;>>>>;>;>>>;>>;>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>>,>>,>>>>,>>,>>>,>>>>>,>>>>>,>,>,>,>>,>>,>>,>,,>>,,>>,,>>>>>,>,>,>,>>,>,>>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,,>,,>,>,,>>,,>,,,,>,,>,,,>,,,>,,,,>,,,,,>,>,,,>,,,>,,>,,>,,>,,,,,,,,>,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,,',,',',,,,,,,,',',',',,,,',',,,',,,,,',,','',',',,'',,',',,',',,,,>>>-****&&=;;>>,,,,,,,,,,>,>,,>>>;-===-=--=-=-;>>,,>;---=-->>>>>>>,>,,,,,,,,,,,,,,,,,,,>;;;=&****&=>>>>,>,,,,,',',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>>;>;>;>;>>>;>;>>;>;>;>;>;>;>>;>;>;>;>;>;>>;>>;>>;>;>>>;>;>>;>;>;;>>>>>;>>>>>>;>>>>>>;>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>,>>,>,>>>>>>>>>,>>,>>,>>>>>,>>,>,>>>,,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,>,>,>,>,,,>,,,,>,,>,>,,>,,>,,,>,,,,>,,,>,>,,,,,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,',,,,,,,,,,',,,',,,,,,,,',',,,,,',,,',',,',,,,,',,,',,',',,',',',',,,,>>;**=&*&=-;;>>,,>,>,>>,,,>,>,>;;-===========-;>>>>;-====-;;>>>>>>>>>,>,,,>,,,,,,,,,,>>>;>-******;;>>>,,,',',,',',',',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;;;>;>;>>>;;;>;>;;>;>;>;>;>;>;>;>>;>;>;>;>>;>;>>;;>>>;>;>>>;>>>>>>>>;>;>>>;>;>;>>;>;>>>>;>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>,>,>>,>>>>>>>>>>>>,>,>,>,>>>,>>,>>,>,>>,>>>,>,>,>>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,,>,,,>,>,>,>>,,>,,,,>,,>,,>,,,>,>,,,>,,,,>,,,>,>,,,,>,>,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,',,',,,,',,,,',',',,,,,',',,',',,,',,','',,',',',,,',',',',',,,,,,>>>-*****=-;;;>>,>,,>,,>,,,>,>,>;--*********==-;>;;;==***=-;>>>>>>>>>>>>>,>>>>>,>,>>,>;;;;-*===*->>>,>,,,,,',',,',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>;>;>;;>>>>;>;>>;>;>;>;>;>;>;>;;>>>;>;>;>>;>;>>>;;>;>>>;>>;;>;;>;>>;>>;>>>>>>>>>>>>;>>>>;>>>>;>>>;>>;>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>>>>>>>,>>,>>>>>>>>,>,>,>,>,>,>>>>>>,>>,>>,>>>,>>>,>>,,>>,>>>,>,>,>,>,>,>,>>,>>,>,>,>,>,>,>,>,,,>,,>,,>,,>,>,,>,>,>,,>,,,>,,>,>,,,,>,,>,>,,,,,>,,,>,,,>,,,,,,>,,,,,>,,>,,>,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,,,,',,,,,,',,,,,',,,,,,,',',,,,',,',,',,',,,,,',,',,,',',,,',,,',',,,,,,>>;*****=--;;>>>>>,>,>,>,>,,>>>>;-=*********=-;;>--=****=--;;;;;;>>>>,>>>>,>,>>,>,>>>>;>;-===**;>>,>,,,,,,,,,',',,'',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";;;>;>>;>>;;;;>>;>;>;>>>;>>;>>;>;>>;>;>;>>>;>;>>;;>>>;>>;;>>;>>>>>>>;>>>;>>;>;>;>;>;>>>>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>>>>>>>>>>>>>,>,>>>>,>>,>>,>>,>,>>,>>>,>>,,>>,>>,>,>,>,>>,>,>,>>,>,>,>,>,>,>>,>,>,>,>,>,>,,>,>,,,>,,>,>,,>,,,>,>>,,>,,,,>,>,,,>,,,>,,,,>,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,',,,,',',,,,',',,,',',',,,,',',,',,',,',,','',,',,'',',,',','',',,',,,>,,>>-****=;-;;;>>,>>>,>,>,,>,>>>>;;=***&&*&&**==-;-=*&&**=--;-;;;;;>>>>>>>>>>>>>>>,>>>;;>;-=-==->>>,,>,,,,''',','',,''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>;;>;;>>>;>;>;>;>;;;>;>;>;>;>;;>;>;>;>;>;>>;>>;>;>;>>>;>>;>;>;;>>>;>>>>>;>>>>>>>;>>;>>>>;>>>;>>>>>;>>>>>;>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>,>>,>>>>>>>,>>>>>>>>,>>,>,>,>,>>>>>,>,>>,>>,>>,>>>>,>>,>,>,>>>,>,>,>>>,>,>,,>,>,>,,>,>,>,>,>,>,>,,>,>,>,>,>,>,,>,>,>,>,,>,>,,,>,,,,,>,,>,>,,,,,>,,,>,,,>,,,,>,,>,,,,,>,,,,,,,>,,,,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,,',,,,,,,,,,',,,,,,',,,,,,',,,,,,,,',,,,,,,',,',,,',,,,',',',,,',',,',,,',',,,,,,>,,>;=*=*=---;;>>>,>,>,>,>>,>,,>>>;-=**&&&&&&**=-==**&&&**=--;;-;;;;;;;>>>>>>>>>>>>>>>;>;;-=-==;>>,>,,,,',,,,',,,,''',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";;>;>>;>>>;>;>;>>;>;>>>;>;>;>;>;>>>;>;>;>;>>;>;>;>;>>>;>;>>;>>>;>>>;;>>>;>;>>>;>;>;>>;>>>>;>>>>>>>>>>>>>;>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>>>>>>>,>>>,>,>>,>>>>>>>>>>>,>,>>>>>,>>>>>,>>,>,>>,>,>>>,>,>>>,>,>,>,>>>>,>>>,>>,>,>,>,>,>,>,,>,>,,>,,>,,>,>,,,>,,,>,>,,,>,>,>,>,,,>,,,,>,>,,,>,,,>,,,,>,,,,,,,>,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,',,,,,,',,,,,,',,,,,',',',',,,',',',,',,',,',',,',,,',',,,',','',,,',',,,,,,,>>-**==----;;>>>>>>>,>,>,,>>>>>;-=**&&&&&&***==*&&&&&&==-------;;;;;>;>>>>>>>>>>>;>;;>;--=*;>>,,,,,,,,',',,''',,,'','''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;;;>;>;>;>>;>;>;>;>;>;>;>;;;>;>;>;>>;>>;>>;>;>;>>>;>>;;>>>;>>>>;>>>>>;>>;>>>>>>>>;>>>>;>;>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>,>>,>>>>,>>>>>>>>>>>,>,>,>,>>>>>,>>,>>,>,>>,>>,>>,>>>,,>,>>,,>>,>,>,>,,>,>,>,>,,,>,>,>,>,>,>,>,>,>,,>,>,>,,,>>,,>,>,,,>,>,,,,>,,,>,,>,>,,,,,>,,,>,,,>,,,,,>,>,,,>,,,,,,,,,,,,,>,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,',,,',,',,,,',',,,,,,,,',,,',,,',,',,',,,,',,'',,',',',,,',,''',,,',,,,,,,,;***=--;--;;>>>>,>>,>,>>,,>>>>;-=**&&&&&&&****&&&&&**==----;--;;;;;;;>;>>>>>>>;>;>>;;--*->>>>,,,,',,,','',,,''','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>>>;>;>;>;;>;>;>;>;>>;>>;>>>;>;>;>>;>;>;>;>;>;>;>;>>>;>>;;>>;>;>>;>;>>>>>>;>>>;>>>>>;>>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>,>>>>>>>>>>>,>>,>,>>,>>>>>>>>,>,>>,>>>,>,>>,>>,>>>,>,,>>>>,>>>>,>,>,>>>>,>,>,>,>>>,>,>,>,>,>,>,>,,>,>,>,>,>,>,,,>,>,>,>,>,,>,>,,>,,>,,,,,>,>,,,>,,,>,,,,>,,,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,',,,,,,,,,,,',,,,,,',',',,,',,,',,,',,',,',',,',,,',,,',,'',',',,,',,,',,,,,,>>;***-----;;>>>>>,>,>,,>>,>>>>>;-**&&&%&&&&&&&&&%&&&*===------;;;;;>;;>;>;>>;>;>;;>;;-==;>,,>,,,,,',',,,','',,',','''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>>;>;>;>>>;>>>;>>>;>>;>>>>>>>;>>>>;>>>;>;;>>>;>>>;>;>>>;>>;>>>>>>>>>>;>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>,>,>,>>>>>,>>>,>>>>,>>,>>,>,>>>>>,,>>,,>,>>>,>,,,>>,>,>,>,,>,>,>,>,>,>,,>,>,,>,>,>,,>,,>>,,>,,>,,>,,>,,,>,,>,>,>,>,,,,,>,,,>,,,>,,,>,,,>,>,,>,,,,,>,,>,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,',,,,,',,',,',,,,,',',,,,,,,',,,,',,',,',,,',,,',,'',,'',,',,,',',,'',',',,',,,,,>>=**--;--;;;;>>>>>>>>,>,>,>>>;;-=**&&&&&&&&&&&%&&&**====-------;;;;;;;>;>>;>;;;;>;>;-=;>>>>,,,,,',,,',',',,'',',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>;>;>;>>;>>;;>;>;>>;;>>;>;>;;>;>;>;>;>>>;>>>>>;>>>;>>>>>>>>>>>>>;>>;>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>>>,>>>>>>>,>>,>>,>>>>>>>>>,>,>>>>,>>,>,>>>>>,>>>,>,,>,>>,>>>,>,,>,>>>,,>>>,>>,>,>,>,>,>,>,>,>,,>>,>,,>,>,,>,,,>,,>,,>,,>,,>,,,>,,,,,>,,>,>,,,>,,,>,,,,,,,>,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,',,,,,,,',',',,,',,',,',,,',',',',',,,',,',','',,,',',,,',,',,'',,,>>;=*=----======--;;>>>>>>>>>>>;;-**&&%&&&&&&%&%&&&***=-==----;-;;;;;;-==****===-;>;-=->>,,,>,,,,',',',',''',','','''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;;>;>;>>;>>;>;>;;>>;>>;>;>;>;>;>;>;>;>;>;>>>>;>;>>>;>>;>>>>;>>>>>>>>;>>;>;>>>;>>>>>>;>;>>;>;>>>>>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>,>>>>>>>>>>,>,>,>,>>>>,>,>>,>>,>>,>,>>,>>,>>>,>>,>,>,>>>>,>,>,>>,>,>,,>,>,>,>,>,>,>,>,>,,,>,>,,>,>,,>>,>,>,,>,>,,>,,>>,,,>,>,,,,,,,,>,,,>,,,>,>,,,,,,>,,>,,,,,>,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,,,',,,,,',,',',,,,',',',,,,,,,,',,,,',,',',,,,,,',,',',,',,',,,''',','',,,',',,',',,,>-****&&%&&&***====--;;>>>>>>;;-=**&&%&%&%&%&%&&&***===-------==*&&&&&&&&&%%%&&*=-=-;>,>>,,,,,,,',',',',',',','',''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>;>;>;>;>;>>;>;>;>;>;>;>;>>>;>;>;>>>;>;;>;>;>;>>>;>;>;>>;>;;>;>>>>>>>>;>>>;>>;>>>>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>,>>>,>>>,>,>>,>>>>>>>>>>,>>>>>>,>>,>>,>>,>>>,>>,>,>>,>>>,>>,,,>>>,>,>,,>,>>,>,>,>,>,>,>,>,>,>>>,>,>>,>,>,,,>,,>,>,,,>,,,>,,,>,,>,,>,>,>,>,,,>,,,>,,,,,>,>,,,,,,,>,,,,,>,,>,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',',,,,,,,,,,',,,,,,,,,',,,,,,,',',',',,',',,',,,',',',,',,',,',,',,',',,,',,,',',,,'',',',,>>-*&&&%&&&&****====-=-=--;;;>>;;-**&&&&&&&&&&&&&&***===-----**&&%&&&&&*&&&&&%&&**=*--;>,>,,,,,,,,',','',','',',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>>;>;>;>;>;>>>;>;>;>;>;>;>;;>;>>>;>>>;>>;>>>>;>>;>>>>>>;>;>;>;>>;>>>;>>>;>>;>;>>;>>>>>;>>>>;>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>,>>>>>>>>>>>,>>>>>>>>,>,>,>,>,>>>,>,>>>,>>,>>,>>>,>>,>>,>,>>,,>>,>>>>,,,>>,>>>,>>,>>,>,>,>,>,>,>,,>,,,>,,,,>,,>,>,,>,,>,>,>,,>,,>,>,>,,,>,,,,,,,,>,,,>,,,,>,,,,,,,>,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,',',,',,,',,',',,,,,,,,',,,,',,,',,',,,',',',',',',',,',',',',',','',',',',,,;-=**&&*=;;>;;--=---=---=-=--;;;;-=**&&&%&%&%&&&&***===-=--*&%%%%&%&&*&***-;>,>>--===--;;,>,,,',,',,',','',',',','''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>;>;>;>;;>;>;>;>;>;>;>;>>;;>;>>>;>>;>>;>;>;;>>;>;>;>>;>>>;;>;>>>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>,>>>>,>>>,>>>>>>>>>>>>,>>>>,>>>,>>,>>,>,>>>,>,>>,>,>>,>,>,,>>>,>,>,,>,>,,,>,>,>,>,>,>,>,>,>,>,>>,>,>,,>,>,,>,,,>,,>,>,,,,,,,>,>,,>,>,>,,,>,,,>,,,,,>,,,>,,,,,,,,>,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,,,,,,,,',',',,,,',,',',,',,',,',,,',,',,',,',',,',,',',,,,',',''',,;;----;,,,,''',,,>;----=--======-;-==*&&&&&&&&&&*&***===-=*&%%%&&&&&&**=;,''''''''',>;----;>,,,,,,,',','',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>>;>;>;>;>;>;>;>;;>>;>;>;>>>;>;>;>>>>;>>>>;>;>>;;>>>>>>;>;>;>;>>>>>>;>;>;>;>>;>>;>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>,>,>,>>>,>>>>,>>,>>>,>>>,>,>>>,>,>>>,>>,>>>,>,>,>,>>,>,>>>,>,>,>,>,>,>,>,,>,>,,>,,>,>,>,,>,,>>,,>,,,,>,>,>,>,,,>,,,,,,,>,,,>,,,,>,,,>,,,,,>,,>,,,>,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,',,,,,,,,,,,',,,',,',,',',',',,,,,,,',',',,',,',,,',,',',,',,,',,',,,'','',',',',','',',,>>;;>>,,,,',,,',',,,,>;--=---===*==-==***&&&&&&&&&***===-=&&%&%&%&&&&*=>,'''''''''',',,,>;;-;>>,',',',',','','',,','''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>>;>>;>;>>;>;>;>>;>;>>>;>;>;>;>;;>>;>>>;;;>>;;>>>>>;>>>;>;>;>>>;>>>>;>;>>>>>>>>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>,>,>>>>>,>>,>>>>>>>>>,>>>,>,>>,>>,>>,>,>>>,>,>>>,>,>>,>>,,>,>,>>>,>>,>,>,,>,>,>,>,>,>,,>,>,,>,>,>,>,,,,>,>,>,,>,>,>,,>,,,>,,>,,,>,>,>,,,>,,,>,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,',,,',,,',,,,,',,,,,,,,,',',',,,,,,',,',,',',,',,',','',,',',',,',,,,',',,',',',',,>,,,,',,,,,',,',,,,,,,,>---=--==****==**&&&&&&&******===*&%&%&&&&&&*=;,,,,''''''',',,,,,,,>;;;>>,,',','','',',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;;>>>;>;;>;>;;>;>;>;>>;>>;>>;;>>>>;>>>;;>;>>>;>>;>>>>;>>>>;>>>>>;>>;>>>;>;>>>>>>>;>>>>>;>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>,>>>>>>,>,>>>>>>>>,>>>,>>>,>,>,>,>>>,>>>>,>>,>>,>>,>>,>>,>,>,>>,>,>,>>>,>,>,,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>>,,>,,,>,,>,,,>,,,>,,,>,,>,,,,,,>,,,>,,,,,,>,,>,,,>,,>,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,,,,,,',',',,,,,,',',',,',,,',,,',,,',,',,,',,',',',,''',,',',,',',',,,,,,,,,,,,,,,,,,,,,,,,,>,>;--=-===*&&&*****&&&*&&&***==-*&%&%&&&&&&**;,,,,,,,,'',,,,,,,,,,,,>;;;>,,,',','','''',,',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>>;>;>;>>;>;>>;>;>;>;>;>;>;>;>>;;>>;>;>>>>;>;>>;>>;>;>>>;>;>>;>;>>>>>;>>>>>>;>>>;>>>>;>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>,>>,>>>>,>>,>>,>>,>>,>>>,>>,>>,>>,,>,>>,>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,,>,,>,>,>,,>,,>,>,,>,,,>,,>,>,>,,>,,,>,,,,,,,,,,,,,,,,,>,,>,,>,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,',,,,',,',,',,,,',,',,,,,,,',',,,,,',,',,',,,',,,'',',,,'',',,',','',,,'',',',',',',',,,',,,,,,>,,>,>,,,>,>,>,>>;----===**&&&*****&*&*****===*&&&&&&&&&*&=->>,,,,,,,>,,,,,,,,,,,,,,,>>>>,,','','',','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>;>;>>;>;>;;>>;;>>;>;>;>;>;>;>>>;>>;>;>>;>>;>>;>;>>>;>>;>>>>>;>>>>>;>>>>;>>>>>;>>;>>;>>>>;>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>,>,>,>,>,>>>>>,>,>>>>>,>>>>>,>>,,>,>,>,>>,>>,>,>,>,>>,>,>,,>,>,,>,>,>,>,>,,>,,,>,>,,>,,,>,>,>,,>,,,>,,>,,,,>,>,>,,>,,,,,,,,,,>,,>,>,,>,,>,,>,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,,,,,,,,,,,',',',,,,',',,,',,,,',',',',,,,,'',,,',',,',',,',',,,,',',',,,',,',,,,,>>>>>>>>>>>>>>>,,>,,>;-=--===*&&%&&***&*****===-*&%&&&&&*&***->>>>>>>>>>>>>>>>>>>>,>,,,,,>>>,',','','''','','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;;>;>;>>;;>>;;>;>;>;>;>;>>;;>>;>;>>;>;>>>;>>;>;>>;>>;>;>;>>;>;>>>;>>>>;>;>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>,>>,>>,>>,>>>>>>>>>>>>>>>>>>>,>,>>>>,>,,>>>,>,>>,>>>>>,>>>,>,>>,>>,>,>>,>,>>>>,>,>>,>,>,>,>,,>,>,>,>,>>,>>,>,,>,,>,,>>,,>,,>,>,,,,,>,,,>,>,>,>,>,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,>,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,',,',',',',,,,,,,,',,,,,',,,',',,,',,,',''',,,',,',,',',,',',','',',',,',',',,,,>>>>>>;>;;;;>;>>>>>>>>,>>;---===**&%%&*********====&&&&&*&******;>>>>>>>>>>;;;;;;>;>;>>>>,,,,,>,,,'',''',,',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>>>;>>;>;>;>>;>;>>;>;>;>>>;>;>>;>;>>;>;>>>;;>>;>>;>;>>;>>>>>>>;>>>>;>>;>>>>>>;>>;>>;>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>>>>>>>>>>>,>>,>>,>>,>,>,>,>>>>,>,>>>>,>,>>,>,>>,>,,>>,,>>>,>,>,>>,>,>,>>,,,,>,>,,>,>,>,>,>>,>,>,,>,,,>,,,,>,>,>,>,,,>,,,>,,,>,>,>,,>,,,,,,,,,,,>,>,,>,>,>,>,,>,,,,>,,>,,>,,,,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,,',,',,,,',,,',,,,,,,,,,,',',',',,',',,,',',,,,',,,,',,,,,',',',,',,',',,',',',,,,',',,,',,,,,>>>;;;;;;;;;;;;;;;;>>>>>>>;-----==*&&%%&******===-=*&&&&&*&*&***-;>>>>>>;;;;;;;;;;;;;;;;>>>>,,>,,,',''',''',',','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;;>;>;>>;>;;>;>;>;>;>>;;;>;>;>>;>;>>;>;>;>>>;>>>>;>>;>>;>;>;>>>>;>>>;>>>;>>>>>>>>>>>>;>>;>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>,>>,>>>>>,>>>>>>>>>>>>,>>>>,>,>>>>>,>>>>,>,>>>,>>>,,>>>,>,,>>,>,>,>>>>,>,>>,>,>,>,>,,>,>,>,>,>>,,>>>,,,>,,,>,>,>,>,,>,,,>,,,>,,>,>,>,>,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,,,,',,,,,,,',',,,',,,,,,,,,,,,,,,',,',,',',',',',',',,',',,',',,','',',,','',',,,,,,,,,,>>>;;;------------;;;;>>>>>>;---=-==**&%%&****====--*&&&********==-;>>>;;;;---------------;;>>>,,,,,,','''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;;>>;>;>;;>;>>;>;>;>>;>;>>>;>;>;>>;>;>>>;>;>;>>;>;>>;>>;>>;>>>;>;>>;>>>>;>>>;>>;>>;>;>>>>>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>>>,>>>>>>,>,>,>,>,>>>,>>>,>>,>,>>,>,>>>>,,>>,,>>,>,>,>>,>,>>,>,>,,>,>,,>,>,>,>,>,>,,,>,>,>,,>,,,,>>,>,>,>,,>,,,>,>,>,,,>,,>,,,,,,,,,,>,>,>,,,>,,,>,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,',,,,,,',',',',',',,',,,',,,,,',,,,,',',,',,',,',',',,,',',,,,,,,,,,'',,,>>;--=--=-=-=-=-=-----;;;>>>>;-----===*&&%%&*=====--=*&*&*&****====;;;;;;;;----=-=-==-=-------;>>>,,,,,',,''',',',''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;;>;>;>>;>>;>;>;>;;>;>;>;>;>>>;>;>>;;>;>>>>;>>;>>;>>;>>;>>>;>>>;>>>;>>>>>;>>>>>;>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>>>>>>>>>,>>>>>>,>>,>>>>>>>>>>,>>>,>>>,>>>,>>>>,>,,>>>,>>>,>>,>>,>>,>,,>,>,>>,>,>>,>,>,>,>,>,>,>,>,,>,>,>>,>,,,,,>,,>,>,>,,,,,,>,>,,>,,,>,>,>,,>,,,,,,>,,,,>,,,,,,,,,,,>,>,,>,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,',,,,,,',,,',,,,,',,',,,,,,,,,,,,',,',,',',',,','',,,',,',',',,',,',',',,'',',,'>,,,,,,>>;--=================---;;;;>;-----===**&&%**===--=-=*&******=*===-->;;;;--==================--;>>,,,,,''',','','','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;>>;>;>;;>;>;>;>>;>;>;>;>;>;>>>;>>;>>;;;>>;>>;>>;>>;>>>;>>>;>>>;>>;>;>>>>>;>>>>>>;>>>>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>,>,>,>,>>>>,>,>,>>>,>,>,>,>>>>>,>>,,>>,>,>,>,,>>>>,>>,>,>,>,,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,>,>,>,,,>,,>>,>,,,,>,,,>,,,,,,>,,,>,>,,,,>,,,,,,>,>,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,,',,,,,,,,,,',,,,,,',',',',',',,,,,',,',,,,',,,,'',,',,',,,',',',',,,',,,,,,,,>,,',,>>;-=*==***=*=*=**=*=*====-;;;;;;------==*&&&&*=-=----=*******=====---;;;---====*=*=**=*******==--;>>>,,,,',',',,','''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>>;>>>;>;>;>>;>;>;>;>;>;>;>>;>;>>>;>>;>>;>>;>>;>>>;>>>;>>;>>>>>;>>;>>>;>>;>>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>,>>,>>>>>>>>,>,>>>>>>>>>>,>,>>>>>,>,>>>>>,>>,>,,>,>,>>,>>>,>,>>>,,,>>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>,,>,,>,>,>,,,>,>,,>,,,,>,>,>,,>,,>,>,,,,,>,,,,,>,,,,>,,>,,,,,,,,,,,,,,,>,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,',,',,,,',',,,,,,,,,,,,,,',',,',,',',,',',,,',',',,',',,',,',',,,,,,,>,>>,,,,>>;-==*******************===--;;-;------===*&&&*=------******====------;;--==********************==--;;;>>,,,',',,,',''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>>;>;>;;>>;>;>;;>;>;>>>;>;>;>;>>;>>;>>;>>;>>;>>;>>;>>>;>>>;>>>;>>>>>>>>>>>;>>>;>>;>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>>>>>>>>>,>>,>,>>>>>>>,>,>,>,>>>>,>,>,>>>,,>,>>>>,>>>,>>>,>>,,>>>,>,,>>>,,>,>>,>,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,,>,,>,>,,,>,,>,>,,>,,,>,,>,,,,,>,>,,,,>,,,,>,,,>,,,>,,,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,',,,,,,,,,,,,',,,,,,,',',',',',',,,,',,,,',,,',,,,',,',,',',,',',',',,',,,,,>>>>;,,,,>--=**&*&**&**&*****&******==-----;---=--==**&*=-----;-*****=====---------==***&****&***&**&*&*&***===---->,,,,,,,,,,''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;>;;>;>;>>;;>;>;>>;>>>;;>;>>;>>;>;>;>>>;>>;>>;>>;>>;>>;>>>;>>>;>>>;>;>;>>;>>>>>>>>>>>>;>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>>>>>>>,>>>>>>>>,>>>>>,>,,>>,>>,>,>>,>>>,,>,>>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,,>,,>,,>,,,>,,,>,>,,>>,,,>,,,>,,>,,>,,,,>,>,,,,>,>,,,>,,,,,,,,,,,,>,,>,,,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,,,,,',,,',,',,,,,',,,',,,,,,,,,,,,',',,',',,',,','',',',',,,',,',',',,',,,,,>>>>;;>>>>;;-=**&*&&&&*&&*&&&&*&&&&&&***=----;-----=-==***==-;-;;-=*======----;-;--==***&*&&&&&*&&&&&&&*&&&&&******==->,>,,,,,,,,'''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;;>;>>;>;>;;>>;>>;>;>;>;>>;>>;>;>;>>;>;;>>;>>;>>;>>;>>>>>;>;>>;>>>;>>>>>>;>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>,>>,>>>>>>,>,>,>,>>>,>,>,>,>,>,>,>>>>>>,>,>>,>,>>,,>>>>,>,>,>,>>,,>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,>,>,,,>,,>,>,,,>,,>,,>,,>,>,,,,>,>,,,,>,,,,,>,,>,,>,,,,,,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,,,,',,,',,,,',,,',,,,',',',',',',,,,',,,',,',,,,,',,,,,'',',',,,',',,,,,,,>>>>;;;>;;-=***&&&&&&&&&&&&*&&&&*&&&&&&***=---;--=--=-===*=--;;-;-=======--;-;---==***&&&&&*&&&&&&&&&&&&&&&&&&&&&&&&&*-;>>>>>>,,,,''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;>;>;>>;>>;>;>;>;>;>;>;>>;>;>>;>>;>>>>>;>>;>>;>>;>>;>;>>>>>;>>>;>>>;>>>>>>;>>>>>>;>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>,>>,>>>>,>>,>>>>>>>>,>>,>>>>>>>>,>>>>>>,>>>>>>>,>,>,>,>>,>,>>,>>>,>,,>,>,>,>,>,>>,>,>>,>,>,>,>,>,>,,>,,,>,>,>,>,>,,>,>,>,,,>,,>,>,,,,>,,,,,,,>,,,,,,>,,,,,>,,,,,,,,,,,>,,,,,,,>,,,>,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,',,,,,,,,,',,,,,,,,',,,,,,,,,,,,,',',,',,',,,','',,'',',,,',,',',',,',,,>>>>>;;;;---==*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&**=------=-=-====--;;;;;-=====-----;-;--=**&&&&&&&&&&&&&&&&&&&&&&&&&&%%&%&&%*=--;;>>>,,,,''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>>;;>;>;>;>;>;>;>;>;>;>;>>;>;>;>;>;;>>;>>;>>;>>>;>>>>;>;>>>;>>;>>>;>>;>>>>>>;>>>>>;>>>>;>;>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>,>>>>>>>,>,>,>>>,>,>,>>>,>,>,>>,>>>,>>,>>>,>,>,>>,>>,>>>,>>,>,>,>,>,,>,>,>,>,>,>,>,,>>,>,,>,>,,,>,,,>,,>>,,,>,,,>,>,,>>,>,>,,,>,>,,,>,>,,,,,>,,>,,>,,,,>,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,',',,',,,',',',,',',',,,',,',,',',,,,',,,',,',,',',',,',,,,,,>>>;;;---***&&&&%&%&%&%&%&%&%&%&&%&%&&&&&&&&*=-;-----=-=====---;;;;;-==-----;-;--==**&&&&&&&%&%&%&%&&%&%&%%%%%%%%%%%$%%&*=--;;;>>>,,,'''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;;>>;>;>;>;>;>;>;>;>;>;>>;>;>>>;>;>>>;>>;>>;>>;>;>>;>>;>>>;>>;>>;>>>;>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>,>>>>>>>>>,>,>>>>>>>>,>>>>>>>,>,>>,>>,>>,>>,>>,>,>,>>>,>,>,>,>,>,>,>,>>,>,>>,>,>,>,>,>,,>,>,,>,,>,>,,>>,,>>,,>,,,>>,,>,,>,,>,,,,,,,>,,,,,>,,,,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,',,,,,,,,,,,,',,,,,,,,',,,,,,,',,,,,,',,,',,',,,','',,'',,',',,',',',,,',,,>,>>>;;;-;=*&%&%%%%%%%%%%%%%%%%&%%%&%%%%%%%%%&&*=----====-===-----------==----;----=**&&%%%%%%%&%%%&%%%%&%%%&%%%%%%$$%$$%&**==-;;>>>,,,'''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;;>>;;>>;>;>>;>;>;>;>;>;>;>>;>;>;>>>;;>>;>>>;>>;>>>>>;>>>>;>>;>>>>>>>>>>>>>>>>;>>;>>>>;>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>>>>>>>>,>>,>,>>>>>>>,>,>,>>>>,>,>,>>>,>>,>>,>>,>,>,>,>>>,>,>,>>>,>,>>,>,>>,,>,>,,>,>,>,>,>,>,>,>,>,>,,>,>,,,>,,,>,>,>,,,>,,>,,>,,>,>,>,,,>,>,,,>,>,,,,,,,>,,,,,>,>,,,,,,,,>,,>,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,',,',,,',',,,,,,',',,,,',',',,',',',,'',,',,,',,,,,',,,',,',',,',,',',,,,>,>>>;;;;--=*&%%%%%$%%%%%%%%%%%%%%%%%%%%%%%%%%&&**=--=-======-=-----------------;-==**&&%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$%%***==--;;>>>,,,''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>;>>;;>>;;>;>>>;>;>>>;>>;>;>>;>;;>>>;>>;;>>;>>;>;;>>;>;>>>>>;>;>>;>>;>>;>;>>>>>>>;>>>>>;>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>>>>,>>,>>>>>>>>,>>,>>>>>>>,>,>>>>>>,>>>,>>>>,>>>>,>>>,>,>,>>>,>,>,>,,>,>>,>>,>,>>,>,>,>,>,>,>,,>,,>,>>,>,,>>,,>>,,,>,>,>,,>,,>,,,,,,>,,>,,,,,>,,,,,>,,>,,,,>,,,,,,,,,>,,>,,,,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,,,,,,,',,,,,',,',,,,,',,,,,,,,,,,,,,',,,',,',',','',,'',,',,,',',',',,',,,,,>>>;;;---=**%$$$$$$%$%%%%%%%%%%%%%%%%%$$$%%$%%&*============-=-----------------==**&%%%%$$$%%%%%%%%%%%$%%$%$%$$$$$$$$%&**===---;;>>,,,,,'''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>>;;>>>;>;>;>;>;;>>;;>>>;>>;>>>;>>;>>>>;>>;>>>>>>>>>>;>;>>>>;>>>>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>>>>>>,>>,>>>>>>>,>,>,>>>>>,>,>>,>,>>,>,>>,>,>>,,>>,>>>,>,>,>>,>>>,>,>,>,>,>,,>,>,>,>,>,>,>,>>,,>,,>,>,,,>,,,>>,,>,,,,,,>,,,>>,>,,,,,,>,>,,,>,>,,,,,>,,,,>,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,,,,,',,,,,,,,,',,,',',',,',',',,,',,,',,,,',,,',,',','',',,',',',,,,,>,>>>>>;;---==*&&%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&**======*====-------;-;-;------==**&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&**===---;;;>>>,,,''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>>;;>;>;>;>;>>;>;>>;;>;>>;>;>;>>;>;>>;>>;>;>;>;>;>>>>>;>>>>>>;>>;>>;>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>,>>>>>>>,>>,>>>>>>,>>,>>>>>>>>,>,>>>>,>>>,>>>>,>>,>>,>>>,>>,,>,>>>,,>,>,>,>,>,>,>,>>,>,>,>,>,,,>,>,,>>,>,,>,,>>,,>>,,,>,,>>,>>,,>,,,,,>,>,>,,,,,>,,,,,,>,,,,,>,,,,,,,,>,,,>,,,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,',',,,',,,,',,',,',,,',,,,,',,,,,,,',,',',,',',,',,',,,',,,,,,',',,,',',,,,,>>>>;;;;----===**************&*&*&&*&&&&&&&&&&**==--==-=-=-------;---;-;;;;----==**&&&&&&&&&&&&&&&&*&*&**&********=*===-=---;;;>>>,>,',''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;;>>;>;>;>>;>;>;>>;>>;>;>>;>>;>>;>>;>;>;>>>>>>>>>;>;>>>;>;>;>>;>>>>>>;>>>>>;>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>,>>>>>>,>,>,>,>>>>>>,>>>,>>,>,>>,>>>,>>,>,>,>>>>,,>>>,>,>,>>,>>,>,>,,>,>,>,>,>>,,>,,>,,,>,>,>,,,>,,,,>,,>,,,,,,,,>,>,>,,,,,,,>,>,,,>,>,,,,,>,,,,,>,,>,,,>,,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,,,,',,',',,,,',',',,',,,,,',,,,',',,'',,','',',','',,',,,,,,,,>>>>;;;;-;---------=====*===*===**==*=**=*=**==--------------;--;;;-;;--;-;---=====**********==*=*==*=========--------;;;;;;>>>>,,,,','''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>>;>;>;>;>;>;>;>>;>>;>>>;;>;>>>;>>;>>>>>>;>;>;>;>>>>>;>>>>>>>>>>>;>>;>>>;>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>,>>>>>>,>,>>,>>>,>,>>>>>>>>>,>,>,>>,>>,>>>>,>>>,,>,>,>>>,>>,,>>>,,>,>,>>,>,>,>>,>>,>,>,>,>,,>>,>,>,>>,>,>,,>>,,>>,>,>,,>,>,>,>,,,>,,>,>,>,,,,,>,,,,,>,,>,,,>,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,',,,,,,,,,,,,',',,',,,,,,,,,',',,,,,',,','',,,',',,,',',,',',,,',,',,',,,',',,,>,>>>>>>;>;;;;;;;-;--;----------=--=-=-=-===-=-----;--------;-;-;;-;;;;;;;;;;-----====-==-=---=-=---=--------;;-;-;;;;;>;;>>>>>,,,,,',','''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>;>>;>;>;>;>;>;>;>>;>;>;>>;;>>>>>;;>>;>>;>;;>;>>>;>>>>;>;>>;>>;>>;>>;>>>>>>>>>>;>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>>>>>>>>,>>>>>>,>,>,>,>>>>>>,>>,>>,>,>,>,>>>,>>>,,>>,>>>,>,>>,>>,>,>,>,>,,>,>,>,>,>,>,>,,>,,>,,>,,>,>,,,>,,,>,,>,>,>,,,>,,>,,,>,,,>,,>,>,,,>,>,,,,,,,,,>,,>,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,,',,',,,,,,,,',,',',',,,,,',',,',,,,,',',,,',',,,',,',,',',',,',',',,,,,,,,,,,,>>>>>>>>>>;>;>;;;;;;;;;;-;;-;-;--;-;;--;--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--;;--;-;--;-;-;;-;;;;;;;;>;;;>;>;>>>>>>>>>,>,,,,,,,''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;;>;>;>;>;>;>;>;;>>>;>;;>>;>;;;>>>;>>;>>>>>>;>;>>>;>>>>;>>>;>>>>>>>>>;>;>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>>,>>,>>,>>>>>,>>>>>>>>>>>>,>,>>>,>>,>>>,>>>,>>>,>,>>>,>,>,>,>,>>,>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>>,,>,,>,>,,>,,>,,,>,,>,,>,,,,>,,,,>,,,,,,>,>,,>,,,,,,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,',,,',,,',,',,,,,,,,,,,',',,,,,',,',',,',,',,',',',,',,',',,',',',',,',,,,,,,,,,,,,,,>,>>>>>>>>>>>>>>>>>>;>>;>;>>;>;;;>;;>;;;>>>>>>>>;>;>>>>>>>;>>>>;>>>>;;>;;;;>;;;>;>;;>>;>>>;>>>>>>>>>>>>,>>,>,,,,,,,,,,,'''','''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>>;>;>;>>;>>;>;>>;>;>>>>;>;>>>>>;>>;>>;;>;;>>>>>>;>>;>>>>;>>>>;>;>;>>>>>;>;>>>>>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>,>,>,>>>>>,>>>,>>,>>,>>,>,>,>>,,>>,>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,,>,,>,,>,>,>,,,>>,>,,>,,>,,,>,>,,>,,>,,>,>,,,,>,,,>,>,,,,,,,,,,>,>,,,,,,,,>,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,',',',',,,,',,',,,',,,',,,,',',,,',',',',,,',',',,',',,',',',,,,,,,,,,,,,,,,,,,,,,>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>,>>,>>,>,,,,,,,,,,,,,,,',,','',','''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>>;>;;>>;>;>;>;>;>;;>>;>>;;>;>>;>>;>>>>>>;>;>;>>;>>;>;>>>;>>>>>>>>;>>>>>>>>;>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>,>>,>>>,>>,>>,>>>>,>>>>>>>>>>>,>,>>>,>>>,>>,>>,>>>,>>,>>>,>>>,>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>>,,,,>,,>,>,>,,,,>,,,>,,>,,,,>,>,,,>,,,,,>,,>,>,,,,,,,>,,,,,,,,,,,>,,>,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,,,,,',',,',,',,,,,,,,,,,,',',,',,',',',,,'',,,,',',,,',,,',',',',',',,'',,,',,',,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,>,,,,>>,>,>,,,>,>,>,>,,,,>,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',',,',','''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>;>;;>>>;;>;>>;>;>;>>>;>;>>;>>;>;>>;>>>;>;>;>>>>>;>>;>>>>;>>>;>>;>>;>>>;>>>;>>>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>,>>>>>>>>>>>>>>,>>>>>>,>>>>,>,>,>,>,>>>>,>>,>,>>,>>,>>>,>>,>>,>,>,,>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,,,>,>,>,,>,,,>,>,,>>,,,>,,,>,,,,,>,,,>,>,,,,,,,,>,,>,,,,,>,,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,',,',,,,,',,,,,,,',,',',',,,,,,,,,',,,,',',,,',',,','',,'',',,',',,',',',,',',',,',',',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,',',,','','',''''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>>;>;>>;>;;>;>>>;>;>>;>;>;>>;>>;>>;>;>>;>>;>;>>>>>>;>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>,>>>>,>>>>>>,>>>>>,>>>>>>>>>>>>,>>>,>>>,>>>,>>,>>,>,>,>>,>>>>,>,>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,,>,,>,,>,>,>,,>>,>,,>,,>,,>,,>,,>,,,>,,,>,,,>,>,,,>,,,,,,>,,>,,,,,,,,>,,,,,>,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,',',',',,,',',,,',',,,',,',,,',,,,',,',,',',',',',',,'',,,',,'',''','',,','',',',',',,,,,',,,,,,,',,,,',',',,,,'',,',,',,,',',',',,',,,'''','','','''','''',''','''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;>;>;;>;>;>>;>;>;>;>;>>;>>;>;>>;>>;>>>>;>>;>>>;>;>;>>;>;>>>;>>;>;>>;>;>>>>>>;>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>,>>>>>,>,>,>,>,>>>,>>>,>>>,>>>,>>,>>>>,>,>>,,>>,>,>,>>,>>>,>,>,,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,,>,>,,>,,>,,>,,>,,,,>,>,>,,>,,,,,>,,,>,>,,,,,,>,>,,>,,,,,,,,,,,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,',,',,,,,,',',',',,,,,,,,',',,,,',,,,',,',',,',,',',',',',',,',',',','',,''','',,',,',','',',,',,',','''''',''''''','''''','''''','''''''''''',''''''''''','''''''''','''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>;>;>>;>;>;>;>>;>;>>;>;>;>;>>;>>>;>>;;>;>>;>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>;>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>,>,>>>>,>>>,>>>>>>>>>>>>>,>>>,>,>,>>,>>>,>>,,>,>>,>,>>,>>>,>,,>,>,>,>>>>,>,>,>,>,>,>,>,>,>,>,>,>>,>,,>,,>,,>,>,>,>,,>,,>,>,,,>,,>,,,>,>,,,>,,,,,>,,,,,,,,,,,>,,,>,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,',,',,,,,,,,,,,',,,,,,,,,,,',',',,,,,',',,',',,',,,',',',',',,,',',',',,',',',,',',,',,'','','',',','','''','',,',',',,',','',',','',','''',',',',',''''',',''',''''','','',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;>>;;>>;>;>>;>>>;>;>>;;>>;>>>>>;>>>;>;>>>>>>>>;>;>;>;>>;>;>>;>;>>;>>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>,>>>>>>>,>>>>>>,>>,>,>,>,>,>>>,>>>>>>,>,>,>>,>>>,>>,>>>,>>,,>>,>>>,>,>>,,,,>,>,>,>,>,>,>,>,,,>,>,>,,,>,>,>,,>,,>,,>,,>,,,,>,,,>,,,,,,>,,,,,>,,,,>,,,>,,>,,>,>,,,,,,,,>,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',',',',,,,,,',',',',,,,,,,',',,',,',,,',,',',,',,',,,',',,,',',',,',,,'',','','',',',','',',','',,,'',''',''',''''''',''','',''',','',''''''''',''''','''','''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>>;;>;>;>>;>;>;;>>>;>;>>;>>;>;;>>;>>;>>;>;>;>;>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>,>>>>,>>>>>>>>>>,>>>,>,>,>>>>>,>>>,,>>,>,>,>>,>>,,>>,,>,>,>,>>>,>,>,>,>,>,>,>,,>>,,,>,>,>,>,>,,>,>,>,>,,>,,>,>,,>,>,>,>,>,,,>,>,,,>,,,,>,,,,,,,,,,,,,>,,,,,,,,,,>,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,',,,,,,,,,,,,,,',',,,,,,,,,',',',,,,',,,',,',,,',',,',,',,'',,','',',,,'',','',,',',',,',',',',,',''',,'''',',','',,'',',,','','',''',''''''''',',',''''',''''','''','''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>;>;;>>>>;>>;>>>;>>;>;>>>>;>>;>>>>>;>;>>>;>>>>>>>;>>;>>;>;>>;>>;>>;>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>,>>>>>,>>>,>>,>>>,>>>>,>,>,>,>,>>>,>>,>>>,>,>>,>,>>>,>>,>>,>,>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,,>,>,,>,,>,,,>,,,>,,>,>,,,>,,,,,>,,,,>,,,,,>,,,>,,,,>,,>,,>,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,',,,,,',,',',',,,,,,,',,',',,',',',,,,',,',,',,,,',',,',',',,',',,',',',',',,','','',',,''',,',''',',''',',''',''','',',''',',',','''''',',''''','''''''','',''',''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>>>;>>;>;;>>;>;;>;>;>;>;>;>>>;>>;;>;>>>>;>>>>;>;>;>>;>>>>>>>;>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>,>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>>>>>,>>,>>,>>,>>,>>>>,,>>,>>,>>,>>>,>,>,>,>>,>>>,>,>,>,>,>,>,>>,>,>,>>,>,>,,>,,>,>,>,,>,>,>,,,,,>,>,,>,>,,>,>,,,>,>,,>,,,,>,,,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,',,,',,,',,,,',,,',,,,',,,,,,,',',',,',,,',,,,,,','',',',',,'',',,',,',',',,',','',',',','',',,','','',,,''',',,''',','','','',',''''',','''''''',',''''''',''''','','''''''','''','''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;;>;>>;;>>>>;>>>;>>;>>;;>>;>>>>;>;>>>;>;>>;>>>>>>;>>;>>>>>>>>;>>>>>>;>>>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>,>>,>>>,>,>,>,>,>,>>,>>,>>,>>,>>,>,>>>,>,>,>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>,>,>,,,>,>,,>,,,>,>,>,,,,>,,,>,,,,,>,,,,,,,,>,,,,,>,,>,,>,>,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,',,,,,,,',,,,,',',',,,,,,,,,',,',',',',,,,',,,',',,,',',',',',',',,',',,',',',',,',''',',','''',',''',',','','',''',''',',',''''',',','''','','''',','''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>>;;>;>>>;>;>>>;;;>>;;>;>>;>>>>;>>;>;>>>>;>>>>>;>>>;>;>>>>>>;>;>>>>>>>;>>>>>>;>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>,>>,>>>>,>>>,>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>>>,>,>>>,>>>,>,>>,>>>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,,>,>,,,>,>,>>,,>,,,>,>,,>,,,>,>,,,>,>,>,>,,,>,,,,,,,,,,,,,,,,,>,,,>,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,',,,,',,',,,,',',,,,,,',',',',,',,,,',,,,',',,'',,,',',,,',',',,',,'',','',',',','',',',',','',,,',',','',''',','',','',''',''',',''''''',','''''','''''',''''','',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";;>>;>;>>;>;;;>;>;>;>>>;>>>;>;>>;>;>>;>>;>>;;>>>;>;>>>;>>>>>>>;>>>>>>;>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>>>>>,>>>,>>,>>,>>,>,>,>,>,>,>,>>>,>>,>>,>>,>>,>>,,>>,>,>>,>,>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,,>,>>,>,,,,,>,,,>,,>,,>,,>,,,,,>,,,,,,,,>,,,,,>,>,>,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,',,,,,,,,,,,,,,,',',,,,,,,,',,',',,'',',,,',,,'',,','',,',,',','',,,,',,',',',',',',','',',,''',',''','',,'',',''''','','',','''',',',''''',',''''''',''','''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>>>;>;>;>;>;>;>;>>>;>;>>;>>>;>>;>>>;>>;>>;>>>;>;>>;>>>;>>;>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>,>>,>>,>>>,>,>>,>>,>>>,>,>,>>,>,>,>,>,>,>,>,>,>,,>,,>>,>,>>,>,,>,,,,,,>,>>,,,>,>,>,,>,,>,>,>,>,,,>,>,>,,,,>,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,',,,,,',,,,,,,,,,,,,,,,',,',,',',,',,,,,',',',',,',,,',,,,,',',',',,,',,,,,','',,',,,,''',',',',',',',','',,',''',',''',,'',''',''',',','','','''',','''''',','''''',',',''',''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;;>>;>;>>;>>;>;>;>;>>>;>>;;>>>;>>;>>;>>>>>>;>>>>;>>;>>>>>>>;>>>>>>>>>>>;>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>,>>>>>>>,>>,>>,>>,>,>,>,>,>,>,>,>>,>,>>,>,>>,>>,>>,,>>,>,>>,>>,,>,>>,>,>>,>>,>,>,>,>,>,>,>,>,>,,>,,>,,,>,>,>>,>>,,>,,>,>,,,,,>,,>,,,,,,,,,>,,,,,,,>,,,>,,,>,,,>,,,>,,,,,,,,,,>,,>,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,,,,,,,,',,',',,,,,,,,,',,,',,,',',,',,',,'',,'','',,,',','''',,,',',',',',',',',''',',,','',,''','',,'',,'',''','','',',''''',',''''','','''''''''''','','','''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>>;;>>>;>>;>;>>;>>;>;>>>;>>>;;>>;>>>>>;>;>;>>;>;>>>>>>;>>;>>>>;>>>>>;>>>>>>;>>>>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>,>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>,>,>>,>>,>>,>>>,>>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,,,,,>,,>,,>,,,>,>,>,,>,,>,>,>,>,,,>,>,>,,,,,,,,>,,,>,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,,,,,,',',',,,,,,',,,,',',',',,,',',',,',,',,',,',,,',,',,',',',',,,,,'',',',',',',',',',,'','','','',','',''',''','',''','',''',',','''',',''''''',''','','''''''''''',''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>;>>;>>;;>;>;>>;>;>;>>;>;>;>>;>>>>;>>;>;>>>>>>;>>>>>>>>;>>>>>>;>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>,>>>>>,>>,>,>,>,>,>,>,>>,>,>>>>,>>,>>,>>,,>>,,>>,>>>,,>>,>>,>,>,>,>,>,>,>,>,>,>,>>,,>,,>,>,>,>,,>>,>,,>,>,,>>,,>,,,>,,,>,,,,,,,,>,,,,,,,>,>,>,,,,,,,,>,,,,,,,>,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,,,,,,,,',,',',,,,,,,,',',,,,,',,,,,,,,',',,,,,',,',,',,',,',',,',,',',',','','',,',',',',',',',','',,'',',,','',','',,'',',''',','',''','''''''',''''','',''',''''''''''''''',''''','''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>>;;>;>>;>>;>;>>;>>;>;>>>;>;>>;>;>>;>>>>;>;>;>>;>;>>;>>>>;>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>,>>>>>>,>>>>>,>>>>,>>>>>>>>>>>>>>,>>>,>,>>>,>>,>>,>>>,>>>,>>,,>>>,>,>,>>,>>>,>,>,>,>,>,>,>,,>,>,>,>,,>,,>,>,,>,>,,,>,,,,>,,>,,,>,,,>,>,>,>,,,>,>,,,,,,,,,>,,>,,,,,>,,>,,,,>,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,',,,,,,,,,,,',,,',,,,,',',,,',',',,,,,',',',,,,,',,',',',,',',',',,,',,,,',,,',',',',',',',','','',',','',',''',,''',','',','',''',','',',',''',',''',''''''','',','','','''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;;>>;>;>>;>>;>>;>>;>;>>;>>;>>;>>>;>>;>;>>;>>>>>>>>;>>>;>>>;>>;>>>>>>>;>>>>>>>;>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>>,>>>,>,>>>>,>>>>>,>,>,>,>,>,>>>,>>,>>,>>,>>>,>,>,>,>,>,>>>,,,>,>>,>,>,>,,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,,>,>,>,>,>,,>,,>,>,>,>,,,,,,,,>,,,,,>,,>,,>,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,,',,,,,',,,,,,',,,,',,',',,,,',,',',,',,,',,',,',,,',',','',',''',',',',',',',',',',',',',','',',,''',,'','',''','',',''',''''''','''','''','','''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>>;>;>;;>;>;>>;>;>;>>;>>;>>>;>>;;>>;>>>>>>>;>;>;>;>>>>>>;>>>;>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>,>>>>>>>>>,>>>>,>,>>>>>>>>>>>>,>>,>>>,>>,>>,>,>>,>>>,>,>>,,>>>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,,,>,,>,>,,>,>,,>,,,>,,,>,,,,,>,,,,,>,,>,>,>,,,,>,>,,,>,,,,,,,>,,,,>,,,,,,,,,,,>,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,',,,,,,,,,,,,',,,,,',',,,',,,,,,',,',',,',',,',,'',,',,',,'',,',',,,',',,,',',',',',',',',',',',''',',,''''','''','','',''','''','',',',',''',''',''''''','','''',''''',''''','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;;>;;>;>;>>;>>;>;;>>;>>;>>;>>;;>>;>>>>;>>;>;>;>>>>>>>>>;>;>>>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>>>,>>>>,>>>>>>,>,>,>,>>,>>,>>>,>>,>>>>>,>>,>,>,>>>,>>>,,>,>,>,>,>,>,,>,>,>,>,>,>,>,>,>,>,>,,>,>>,>,>,,>>,,>>,,>>,>,,,>,>,,,>,,,,,>,>,,,,>,,,,>,,>,,,,,,,,,>,,>,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,',,',,',,,',,',,,,',,,',',',,,',,,',,,,',,',,,',',',',,,'',',',',',',',',',',',',',','','',',,'','',',,',',,',','','','',','',''''''''','','''','',''''''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>;>;>;>;>>>>>;>;>;>;>>;>>>;>>;>;>>;>>>;>>>;>;>;>>>>>>>;>;>>>;>>>>>>>;>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>,>>>,>>>>,>>,>>>>>>>>,>>,>>,>,>,>>,>,>>,>,>>,>>,,>>,>,>>,>>,>>>,>,>>,>,>,>,>,>,>,>,,>,>,,>>,>,,,,>,,>,,,>,,,>,,,,>,>,,>,>,,,>,>,,,,,>,>,,>,,,,,,,>,,>,>,,,,,,,,,,,,,,>,,>,,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,',,,',,,,,',,,,,,',,',',,',,,,,,,',',,',,',',,',,',,',,,',,',,,',,',',,',',',',',',',',',',',',','',',',','''',''','',''','',''',''',',',','''''','''''''',','''''''''',''','''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>;>;>;;;>;>;>>;>>;>>;>;>>;>>>;>>>;>>>;>>;>>>;>;>>;>>>>;>>>>>>>;>>>>>>;>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>,>>>>,>>,>>,>>>>>>>>,>>>,>>>>,>,>,>>>>>>,>>>>>,>>,>,>>,>>,>,>>>,,>>,>,>,>>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,,>>,,>,,>,>,>,>,,>,>,,,>,,>,,>,,,,,>,>,,,,,,,,,>,>,,,,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,,,,,,,,',,,,,,',,,,,,,,,,,,,,',',',,,,',,',,,',,',',',',',,','',',',',',,',,',',',',',',',','',',',','',''',,','','','',,'','','',',''''''''',',''','',','''''','','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>;>>>;>>>>;>>;>;>;>>;>>>>;>;>;>>;>>>;>>>>>>;>>>>>>>>>>;>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>,>>,>>>>>>>>,>,>>>>>>,>,>,>>,>,>>>,>>>>,>>,>>>,>,>>>,>,>,>,,>>,>,>>,>,>,>,>,>,>,>,,>,,>,>>,>,>,,,>,>,>,,>,,>,>,,,,>,,>,,,>,,>,>,,,,,>,>,>,,>,,,,,>,,>,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,',,,,,,',,',,,',,',',',',',,,,,,',',,',,',,,',,',,',,',',',,,',,',','',',',',',',',',',',',','',',',',','','',','','''','','',''',',',',','''',''''''''','','''''',''''',''''','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;;>>;>;;>>;>;>>>;>>>;;>>;>>>;>>>;>>>;>;>>>;>;>>;>;>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>,>>,>>,>>>>>,>,>>>>>>>,>>>,>,>>>,>,>,>>,,>>,>,>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>>,,>,,,>,>,>,,,>,>,,>,,,>,,>,,,,,>,>,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,',',',,',,',,',,',,',,',,',,,,',,',,'',,',,,',',',',',',',',',',',','',',',','','','',',',','',''','',''''''''''',''',',''',''''''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>;>>;>;>>>>;>;>>;;>>;;>>>>>>;;>>;>>>;>>;>>;>>>>>>>>>>>;>>>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>,>>>>>,>>,>>>,>,>>>>>>,>>>,>,>>>>,>,>,>>,>,>>>,>,>>>,>>,>>>,>>>,>>>,,>>,>,>,>>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,,>,,>>,,,>,,>,,>,,>,,>,,>,,,>,>,,,,,>,>,>,>,,,,,,,,,,,>,,,,,>,,,,,,,,,,,,>,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,',,,,',,,',',,',',',',',',',,,,,,,',,',,',,',,',,',,',','',,','',,,',',',',',',',',',',',',''',',','',','','',',','','','''',''','',',',',',''',''''','''','','''',''',''''''''''''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;;>>;>;>;>;;>>>;>>>;>>>>;;>;>>>;>>;>>>;>>>>>>;>;>;>>;>>>;>>;>;>>>>>>;>>;>>>>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>,>>>>>,>>>>>,>>>>>>>,>>>>,>,>>>,>,>>,>,>,>,,>>,,>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>>,,>,,>,>,>,>,>,,,>,>,,>,>,,>,,>,,>,,,>,,,,,>,>,,,,,,,,>,,>,>,,>,,,,>,,,,>,,>,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,',,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,',',,,',,',,',,',,',',',,',,',',,,','',',',,,',',',',',',',',',,'',',','','',','',''','','',',',',''',''''''''',''',',''''',''''''''''''''''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;;>;>>;>;>>;;>>;;>>;>;>>>>;>;>>;>>;>>>;>;>;>>>>>>>>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>,>>>>>,>,>>>,>,>>,>,>,>>,>,>>,>>,>>,>>,>,>>,>>>>,>>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,>,,>,>,>,,>>,,>,>,,,,>,,>,,>,,>,>,,>,>,,,,>,>,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,',,',',,,,',,',',',',,,,,',,,',,,,,',,',,',,',,',,,,',',',,',','',',,',',',',',',',''',','',',',','',',',',','',''',''',','',',',',''','''''',','''',''',''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;>>;>;>>;>>;>>;>>>;>>;>>;;>>>>;>>>>>;>>>;>>>;>>;>>;>>>>>>>>>>>;>>>>>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>,>>>>,>>>>>>>,>>>>>,>>>>>>,>>>>>>>>>>>,>>>,>>>,>>,>>>,>>>,>,>,>,>>,>,,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,,>,,,>,,>,>,>,,>,,>,,,>,,,>,,,,,,>,,,,,,,,>,,>,,>,,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,',,,',,',,,,,,',',,,',,,',',,',,',,,',',,'',',',,',',,,',,',',',',',',',','',,,'',',',',''',',''','',',''','''',''',''''''''',''',',''''''','','''''''''',''''''',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;;>;>;>>>;>;>;>;>;;>>>;>>;>>>;;>>>;>;>>>;>>>;>>>;>>>>>>;>>;>>;>>>>>>>>;>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>,>>>,>>,>>>,>>,>>>,>,>,>,>,>>,>,>>,>>,>>,>,>,,>>>,>>,>,>,>>>>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,,>,,>>,,>>,,>>,,>,,,>,>,,,>,,>,>,,>,,,>,>,,,>,>,>,,,,,,,,,,>,,,,,>,,,,>,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,,',,,,,,,',,',,,,',,,,,,',',,,,,'',,',',,',,,',,'',',,',,,',,'',,','',',',',',',',',',',',''',,',',','',,'''',,'','''',,'',','','',',',',',''',''''',''','''''','',''','''','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>;>;;>>;>>;>>>>;;>>>;>>;>>;>;>>;>>;>>;>>>;>>>>;>>;>>;>>>>>;>>>>;>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>,>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>,>>,>>,>>,>>>>,,>>>,>>>,>,,,>>,>,>>,>,>,>,>,>,>,>,>,,>,,>,>,>,>,,>,,,>,,,>,,>,>,,,,>,,,>,,,>,,,>,,,,,>,,,,,,>,,>,,>,,,,,>,,,,,>,,,,,,,,,>,,>,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,,,,,',,',,,,,,,',,,,',',',,,,',',,,,',,,',,,',,,',,,,',,',',',,',',',,,',,',',',',',',',',',,''',''',',''',,,''',',',,'''',''','',''''''''''','''',''','''''',''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;;>>>;>;>;>;>;;>>>;;>>;>>>>>>;>>>;>>;>>;>>>;>>>>;>>>>>>>;>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>,>>,>>>,>>>>>>>,>,>>,>,>,>,>>,>,>,>,>,>>>,>>>,>>,>>,>>,,>>>>,,>,>,>,>>>,>,>>,,>,>,>,>,>,>,>,>,>>,,>,>,>,>,>,>,>>,,>>,,>,>,>,>,>,>,,,>,,>,>,,,>,>,,,>,>,,,>,,>,,>,>,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,',,,,,,,,,',,',,,,,,,,,,,,,,',,',,,',',,',,'',,',',',',',',,',,',',',,'',',',',',',',',',',''',,,'',,',',','''',',''','',','',''','',',',',',''',',''''''','',''''',''','''',''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>>;>;>>>;>>>;>>>;>>>>;>>;;>;>>>;>>>>>>>>>;>>;>>>>>>;>>;>>>>;>>>>>;>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>>,>>,>>,>>>,,>,>>>,>>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,,>>,,>,,>,,>,>,,,>,,,>,,>,,,>,,,,>,>,,>,,,,,>,,,,,>,,,,>,,,,,,,,,,,,>,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',',,,,,,',,',',',',',',,,,,,',,,',,',,,,',,,',',,',,',,',,',','',,',',',',',',',',',',,'''',,'',',','',',''',,''',''',',','',''''''''''',''''','','''''''','''''''',''''''',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>;>>;>;>;>;>;>;>>;>;>>;>>>>;>;>>>;>;>;>;>>>>>;>;>>>>>>>>;>>>>>>>>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>>>>>,>>>>>>>>,>>,>,>>>,>,>,>,>,>,>,>>>>,>>,>>>,>>,>>,,>>>,>,>>>,>>>,>,>>,>,,>>>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>>,,>>,,>,,>,>,,>,,,,>,,,>,>,,>,>,>,,,>,,,,>,,,>,,,,>,,,,,,,,,,>,,,,>,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,,,,,',',,,,,,,,,,,,,,,,',',',,',,,',,',',,',',,',,,',',',',',,,,',,',,,',',',',',',','',,',''',',','',',',',''',,'','''''',''',',',',',''',','''''','','','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>;>;>>;>;>;>;>;>>;>>;>>;>;>>>;>;>>>>>>>;>;>>>>>;>>;>;>>>>>>>;>>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>,>>>>>>>>,>>>>>>>>,>>>>>>>>>>>>>>>,>,>>,>>>,>>>>>,>>>>,>>,>,,>>,,,>>,>,>,>>,,,>,>,>,>,>,>,>,,>,>,,>,,>,>,>,,,>,,,>,,>>,,,>,,>,>,,>,>,,,>,,,,,,,>,,,>,,,>,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,',,',',',',',,,,,,,',,',,,',,,',,',,',',',,',,',,,''',',',''',',',',',',','','',',,,',''','','','',,'''','',,','',',''''''''',''''','','''''''''''',''''''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>>;>>;>;>>>;>>>;>>>;>>;>;>>;>>>>>;>;>;>>>>>>;>>>>>>>>>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>,>,>>>>>>,>,>,>,>,>,>,>>>,>>>,>,>,>,>,>,,>,>,>>>>>,>>>>,>,>,>,>,>>,>,>,>,>,>,>,>>,>,>>,>,>,,>,>,>,>,>,,>,,,>,,>,,>,,>,,,>,>,,,>,>,>,,,>,,,,,,,>,,,,,>,,,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,',,',,,,',,',',,,,,,,,,,,,,',',',,,',,',,,',,,',,',,,',',,,',''',,,,',',,,,',',',',',',',,',','''''',',','','','''',,''','''','','',',',',''',',''''''',','','','''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;;>;>;>>;>;>;>;>>;;>>>;>>>;>>>;>;>>;>>>;>;>;>>>>;>;>>;>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>,>>>>>,>>>,>>>>>>>>>>>>>>>,>>,>,>>>>,>>>,>>>>>>,>,,>,>,>,,>,>,>>,>>,>,>,>,>,>,>,>,,>,,>,,,>,>,>,,>,,>,,>,>,>,>,>,,>,,,>,,>,,,,,>,,,,,,,>,,,>,,>,,,,,>,,,,,,,,,,,,,>,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',',,,,,,,,,,',,,,,,,,,',,',',',',,,,,',,',,',',',,',',',,'',,',',',,,,,'',',','',',',',',',',',',',',',,,',',',','',',',,'',','',','','',''''''''',''''','',''''','''''''''',''''''','''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>;>>;>>;>;>>>;>>>>;;>>;>>>;>>>>>>>>;>>>>>>>>;>>>>>;>>;>>>>>>>>>;>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>,>>>>>>>>,>>>>,>>>>>,>>>,>,>,>,>,>,>,>>,>>>,>,>>>,>>,>,,,>,>>>>,>>,>>,>>>,>,>,>,>,>,>,>,>,>,>>,,>,>,>>,,>,>,>,>,,>,,,>,,>,,,>,,>,,,>,>,>,>,,,>,>,,,,>,,,,,,>,,>,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,',,,',,',,,,,,,,,,,,,,',',,,',,',,,,,',,',,,',',,',,,',','',',,',,',,',',',',',',',''',','','',',',''',',''','',''','','','''',',',','''',','''''',''''''',''',',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;;>>;;>;>>;>;;>>;>;>>>>;>;>;>;>;>;>;>>>;>;>;>>>>;>>>>>>>>>>>>>>>>>;>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>,>>>>>,>>>,>>>>>>>>>>>>>>>,>>>,>>>>,>,>>,>>>>,>>,>,>>,>,>,>,,>,>>,>,>,>,>,>,>,>,>,,>>,>,>,>,>,>,>,,,>,,>>,,>,,>>,,,,>,>,,,,>,,,,>,,,>,>,,,>,,>,,,,,,,,,,,,,,>,,>,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,',',',',',,,,',,,',,'',',,',,',',,,,',',',,,',,',',',',',',',',',',',',,','',','',',',',','',',','',','','','',','''''''',','''','',''','',','','''''','''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>;>;>>>;>;>>>>;>>>;>;>;>>>>;>>>;>>>>;>>>>>>>;>>>>>;>>;>>>>;>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>>>,>>>>>>>>>,>,>,>,>,>,>>>>,>>,>,,>>>,>>,>,>>,>>,>,>,>>,>,>>,>,>,>>,>,>,>,>,>,>,>>,,,>,,,>,,>,>,,>>,>,>,,>,>,,,,>,>,,,>,>,,,>,>,,,>,,,,>,,,,,,,>,>,,>,>,,,,,,,,,,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,,,,,,,',,',,',,,,,,,,,,,,,,,,',,,',,,',,,,,',,',,','',',,',,'',',',,',',',',,',',',',',',',',',',',',''','',','',''',''',''','','',',',',','''',''''''''''''''''''''''''''','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;;>;>>;>;>>;>;;>>;;>>;>>>;>;>>>;>>>>;>>>;>;>>>>;>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>,>>>>,>>,>>>>>>>>>>>,>>>>,>>,>>,>>>>>>>>>>>>,>,>>,>>>>>>,>>>,>,>,>>,>>,>>,>,>,>>,>,>,>,>>,>,>,>,>,>,>,,>>,,>>,>,>,>,>,,,>,,,>,,>,>,>,,>,,>,,>,,>,,,,,>,,,>,,,>,>,>,,,,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,',,',,',',',',',,,',,,',,,',',,',,',,,,',,',,',,,,',',',',',,',',',',',',',','','',',',',','',''','',,'',,''',''''','''''''''''',''',','','','','','''''''''''''''''''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>;>;>>;>>>;>>>;>>;>>>;>;>>>;>;>>;>>;>>;>>>>;>>>>;>;>>>>>>>>>>>;>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>>,>>>,>>>>>>>>>,>,>,>,>,>,>>>,>>,>,>,>>,>,>>>,>>,>,>>,>>,>,>>,>,>>>,>,,>,>,>,>,>,>,>,>,,>,,>,>,,,>,,>,,>,>,,>,,,>,,>,,>,,>,,>,,>,>,,,,>,,>,,,,,,,,>,,>,>,,,>,,,,>,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,,,,,',',,',,,,,,',,,,,,,,,,',,,',,',',,,',,,',,'',,,',,',',',',,',',,,',',',',',',',',',',',,',''',',',',',,'',''',''',',',',''',',',',',',''','''''''''','''''','',''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>>>;>;>>;;>>>;>>;>>;;>>>>>;>>>>>>>;>>>>>;>>>>>>;>>>>>>>>;>>>;>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>,>>>>>>>>>,>>,>,>>>>>>>>>>>>>>>>,>>>>,>>,>>>,>,>>,>>,>,>,>>,>,>,>>,,,>>>,>,>,>,>,>,>,>,>,>,>,,>,>>,>,>,>,,>,>,,>>,,>,,>,,>,,,,,>,,,,>,>,,,,,,,>,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,',,,,',,,,,,,',,,,',,,,,,',',',',,,',,,',,,',',,',,',,,',',',,',',,',',',',',',,',',',',',',',',''',',',','',''''','',',',',''''','','','''''''''','''',',',''''''','''''',','','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>;>;>;>>>;>;>>;>>;>>>;>;;>>>;;>;>>>;>;>>>>;>;>>>>;>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>,>>,>>,>>>>>>>>,>,>,>,>,>,>,>>>,,>>>,>>,>,>>,>,>,>>>,>>,>,>,>,>,>>>,,>,>,>,>,>,>,>,>,>,>,>>,>,,>,,>,,>,>,,>,>,,>,,,>,,,>,>>,,>,>,,,,,>,>,>,,,,,,,>,,>,,,,,,,,>,,,>,,,>,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,',,,,,',,,,,,,',,,',,',,,,,,,,,',,,',,',,,,,',,',,'',',,,',,',,',',',,',',,'',',',',',',',',',',',',','',',',,',',',''','',',''','','',',',','''',','''''',','',''''',''''''''',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>>>;>;;>;>>;>>;>>;>;>>>>>;>>>;>>;>>>>>>;>>>>>;>>>;>>>>>>;>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>>>,>,>>,>>>>>>>>>>>>>,>,>>>,>,>>,>>>,>>,>>>,,>>,,>>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,,>,,,>,,>,>,,>,>,,,>,,>,,>,>,,,>,,,,,>,,,,,>,>,,,,,,>,>,,>,,,,,,>,,>,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,',',',',,,',,',,','',,',,',,,,,'',',',,',',,',',',',,,',',',',',',','',','',',',,'','','',''',','','',','','','''''''',','''''',''''''''''','''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;;>>>>;>>;>>;>>;>>>>;>;>>>>>>>;>>>;>;>>>>>;>>>>;>>>>>;>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>>>>>,>,>,>,>,>,>>>>,>,>>>>,>>,>,>,>>,,>>>,>>>,,>,>>>,>,>,>>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,>,,,>>,,>,,>,,,>,>,>,>,>,,>,>,,,,,>,>,>,,,,,,,,>,>,,,,,,,>,,,,,,,>,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,',,,,,',,,,,,,,,,',,',',',,,,,,,,,,',,',,',,,,,',,',,','',,,,',,',',,',',',','',',',',',',',',',','',','','','','','',,','','',''','',''',',',','''',',''''','','',''''''''','','''''',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>>>;;;>>;>>;>>>;>>;>;>>>>;>;>;>>>;>>>>>>;>>>>;>>>>>;>>>>>;>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>,>>,>>>>>>>>>,>>,>>>>,>>>,>,>>>>>>>>>>>>>,>,>>>,>,>>>,>>>,>,>>>,,>>,>,>>,>,,>>,>,>,,>,>,>,>,>,>,>,>>,>,>,>,>,>>,,,>>,,,>,,>,>,>,,>,,,>,,,>,,,,,>,>,,,,,,,,>,,>,,,,,,>,,>,,,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',',,',',,,,,,,,,,',',',',',,,,,,',,',',,',,',',,,',',',',,,'',',',,,',,',',',',',',',',',',,',',',',',',',',''''','',''','',''',''''''''',''''','',''''''''','''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>;;>>>>>;>>;>>;;>>;>;>>;>;>>>>>>;>>>;>;>>>>;>>>>;>>;>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>,>>>>>,>,>,>,>,>,>>>>,>>,>>,>>>,,>>>,>,>>>,>,>,>,>>>,,>,>>,>>,>,>,>,>,>,>,,,>,,>,,>,>,,,>>,,,>>,>,>,,,>,,,,>,,,>,,,>,>,,,,,>,>,>,>,,,,,,>,,,,,>,,,,,,,,,,,,,>,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,',',,',,,,,,,,,,,,',',',,',,,',,,',,',',,',',,,',',,',,,''',,',',',',',',',',','''','','',',''',''',',,,'','',',''',',',',',','''',','''''''','',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;;>>>;>;>;>;>>;>>>>;>>>;>>>>;>;>;>>>;>>>>>;>>>>;>>>>>>>>>;>>>>;>>;>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>,>>,>>>>>>,>,>>>>,>>>>,>,>>>>>>>>>>>>,>,>>,>>,>,>,>>,>,>,>>,>,>>>,>,>,>,>>>,>,>,,>,>,>,>,>,>,>>,>,>,>,>,,>>>,,,>,,,>,,,>>,,>>,>,,>,,>,>,,,,>,>,,,,,,,,,>,>,,,,>,,,,,>,,,>,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,,,',,,,,,',,',,,,,,,,',',',',',',,,,,,',,',',,',,',,,',',,',',',',','',,,',',',',',',',',',',',,,',',','',',','',','''',''','',','',''''''''',',''''','',','''''',''''''''','''',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;;>;>;>;>>;>>;>;>;>>;>>;>;>>>;>>;>>;>;>>>>>;>>>>;>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>,>>>>>,>>>>>>>>>>,>,>,>,>,>,>>>,>>>,>>>>>,>>>,>>>,>,>>,,>,>>,>,>,>,>>,>>,>,>,>,>,>,>,,>,,>,,>,,>,,,,>,>,>,,>,>,,,>,,,,,>,>,,>,,>,>,,,,,>,>,,>,,,,,,>,,,,>,,,,,>,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,',,,,',,,,,,,,',,',,,,,,,,,,,,,,,',',,,',,,,',,',,'',,',',,,',,,',',,',',',',,',',',',',','','''','',',,','',',','',','',,'',''',''',',',',''''',','''''''''',',''',''',''''','''''''''''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>;>>>;>;>>;>>;>>>;>;>;>>>>;>>>>>;>>>>;>>;>>>>;>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>,>>,>,>>>>>>>>>>>>,>>,>,>>>,>,>>,,>>,,>>>,>,>>>,>,>,>,>,>,,>>,>,>,>,>,>,>,>,>,>,>>,>,>,>>,>,,>,>,>,,>>,,,>,>,,,,>,,>,,,,,>,>,,,,>,,,,,>,,,,>,,,>,,,,,,>,,,,,,,,,,,>,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',',,',,,,,,',,',',',',',',,,',',,',',,',,',,,,',,,'',,',',,',',',',,',',',',',',',',,',,',','','',','''','',',',''',''','',','''''''',','''''','','',''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;;>;>;>;>;>>;>>;>;>>>>>;>;>>>;>;>>>;>;>>>>>>;>>>>>>>>>>>;>>>>;>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>>>>,>>>>>,>>,>>>>>>>,>,>,>,>,>,>>,>>>,>,>>>,>>>>,>>>,,>>>,>,>,>,>>>,>>,>>,,>,>,>,>,>,>,>,>,,>,,>,>,>,,,,>,,>,,,,>,,,>,,>,,>,>,,>,,>,>,,,,,>,>,,,>,>,,,>,,,,,,,,>,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,,,,,,,,,,,',,,,',,,,',,,',,'',',',',,',',',',,',',,',',',',',',',','','',',',,','','',,',',''','',''',''','''',',',','''',',','''''''''',''','',''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>;>>>;>>;>>;>>;>;>>>>>;>>>>>;>>>>>;>;>>>>;>>>;>>>>>>>;>>>>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>,>>>,>>>>,>,>>>>>>>>>>>>>,>>>,>>,>>,>>>,,>>,,>>>,>,>,>>,>>,,,>,>,>,>>,>,>,>,>,>,>,>,>>,>,,>,>,>>>,,>,>,>>,,>,>,>,,,>,,,>,,,,,,,,>,>,,,,,>,,,,,,,,,,>,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,',,,,,,,,,',',,,,',,',',',',',',',,,',,',',,',',,',,,',,,',,',,,',','',,,'',,',',',',',',',',',','','',',,'',''''',','',''',',',''',',''''''''',''''''','','',''','''''''''','','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>;>;>>;>>;>>;>;>>;>;>>>;>;>>>;>;>>>>>>;>>>>;>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>>>>>>,>>>,>>>>>>>,>>>>>,>,>,>,>,>,>>>,>,>>>>,>>,,>>>,>>>,>>,>>>,>,>,>>>,>,>>,>,>,>,>,>,>,>,>,,,,>,,>,>,,,,,,>,>,,,,>,,>,,,,>,,>,>,,>,>,>,>,,,,>,>,,,,>,,>,>,,,,,,,,,,,>,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,',,,,,',,,',',,,,,',,,,,,,,,,,,,,,,,,',,',,,,',,,,',,',',,'',,',,'',',,',,'',,',',,',',',',',',',','',','',''',',',,','',',','',''',','''',',',',''',',''''''''''''''''''''',''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;;;>>;>;>>;>>;>>;>>;>>>;>>>;>>;>>>>>>>>;>>>>;>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>,>>>>>>,>>>>,>>,>>>>>,>>>>>>>>>>>>>>,>>>>,>,>>,>>>>,>>,,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>>,>,>>,>,>>>>,>,,>,>,>,>,,>,>,,>,,,,>,,>,,,,,,>,,,,,>,>,,,,,,,>,,>,,>,>,,,>,,>,,,>,,,,>,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,,',,,,',',,',',',',',',,,',,'',,',',,',,',',,,',,',,,,',',',,',',','',',',',',',',',',,'',',',,'',''','',','',',''','''',',''''''''',''''','','',',','','',''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>;>>>;>>;>>>;>>;>;>;>>;>>>;>>>;>;>;>>>>;>>>>;>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>,>>>>>>>,>,>>,>,>,>,>,>,>,>>,>,>>>,>>>,>,>,>,>>>,>>>,>>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,,>,>,,,,>,,,,,>,>,,,>,,,>,>,,>,,>,>,,,>,,>,>,,,,>,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,',,,,',,,',,,,',,,,,,,',,,,,,,,,,',,',,,,',,,',,,',,,',',',','',',',,'',,',,',,',',',',',',''',''',',','',',','','','','''','',','','',',',',''',',''','',''''''''''''',''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;;>;>;>>;>>;>>>;>>>>>>>>>;>>>;>>>>>>>;>>>>;>>>>>>>>>;>>>>>>;>>>>>>>;>>>;>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>,>>>,>>>,>,>,>,>>,>,>,>>,>,>,,>,>,>,>,>,>,>,>,>>,,>,>>,>,>>,>,,,>>,,>>,>,,>,,>,,>,,>,,>,,,,>,>,,,,,,>,>,,,,>,,>,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,,',,',,,,',',',',,,',,',',,,',,,',,'',,',,',,,,',,',',,,',',','',',',',',',',,',',,','',',''',','','','',','','',','','''''','','''','''''''''','',''''''''''''''''''',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>;>>>;>>;>;>;>>;>;>;>;>>>;>>;>;>>;>>>;>>>>;>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>,>>,>>>,>,>>>>>>>>,>>>,>,>,>,>,>,>,>>>,>>,>>,>>>,>,>>,,>>>,>>,>,>,>,>>,>,>>,>>,>,>,>,>,>,>,>,,,>,>,,>,,>,,>,,>>,,,>,,,,>,,,>,,,,,>,,>,,>,>,,,,>,>,>,,,,,>,,,,,,,,,,,,,>,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,',,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,',,,',',',',,',,,',,',,'',,',',,''',',',',,',',',',',','','','',',',',',''',,',',',''',''','''','',','''',''','''','','',''''''',''''','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;;>>;>;>>;>>>;>>;>>>>>;>>;>>;>>>>>>>>>>>>;>>>>>>;>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>,>>,>,>>>>,>>>>>>>>>>>>>>>,>>>,>>,>>,>>,>,>>>,,>>,>>,>>>,>,,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,,>,>,>,>,>,>,,>>,>,,>,,>,,,,,,>,,,,,,,,>,,,,>,,>,,>,,>,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,',,',',,',',,,,',',',',,,,',,',',,,',,,',,'',',',',,',',,',',,,',',,',',',',',',',',',',',',','',''',,''',''','',',',''','',''''',',''',''',''''''''''',',''''','''','',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>;>;>>;>>;>>>;>>;>;>>>;>>>>>;>;>;>>;>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>,>>>>>>>>>>>>,>>>>,>,>,>,>,>,>,>>,>>>,>>,>>,>>>,>,>>>,>>,>>,,>,>>>>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,>,,,>,,,,,>,,,>,,>,>,>,,,>,>,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,',,,,,,',',,',,,,',,,',,',,,,',,',,',,,'',',',',',,',',',',',',',',',',',','',',',',''','',','',''''',','','',',''''',''','''',','','',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;;>>>>;>>;>;>;>>;>>>>;>>>;>;>>>>>>;>>>>>>;>>;>>>>>>;>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>,>>,>>>>>,>>>>>>>>>>>>>>,>,>,>>,>>,>>>,>,>>,>,>,>,>,>>>>,,>,>>,>,>,,>,>,>,>,>,>,>,>,>,,,>,,>,>,>,>,>,,>,,>,,>,,>,>,>,,>,,>,,,,,,,>,,,,,,,>,,,,,>,,>,,>,,,>,,,,,>,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,,',,,,',',,',',,',,,,,,,',',,,,',,',',,,',',,','',,',,',,'',,,',',',,,'',',',',',',',',',',''',','',',',',','','',','',','''','',''''',',''',''','''''''''''''','''''''''',''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>;;>>;>>>>;>>;>>;>;>>>;>>>>;>;>>>>>>;>>>>>>>>;>>;>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>,>,>,>,>,>,>>>>>,>>>,>>,>,>>,>>,>>>,>>>,>,,>>,>,>,>,>>,>,>,>,>,>,>,>,,>,,>>,>,>,>,,>,,,>,,>,,>,>,,,>,,,,>,,>,,>,>,>,,,>,>,>,,,,>,,,,,,,>,,,>,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,',,,,,,,,,,',,,,,,,,,,,,,',',,',,,,',,,,',,,',',,,,',,,,,',,',',,,,'',',,','',,',',',',',',',',','',,',',','',''','',',','','','',','','',',''''',''',''','',',',','',''','''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;;>>>;>>;>;>>;>>;>>>>>;>>;>;>>>>>;>;>>>;>;>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>,>>>,>>>>,>>,>,>>,>>>>>>>>>>>>>>>>>>>>,>,>,>>,>>,>>>,>,>,>>,,>>,>,>,>>,,>>,>>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,,>,>,,>,>,>,>,,,>,>,,>,>,,>,,,,,,,,,,>,,,,,,>,>,,,,>,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,',',,,,,',,,',,,',',,',',,,',',,'',',',',,,'',',,',',,',',',,',',',',',',',',','',','',',',',','',''','',''',''',''','''',',''',''',''''''''''''''''''''''',''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>;>>;>>;>;>>;>>;>;>>;>>>>>;>;>>>>>;>>>>>>>>>>>;>>>>;>>>>>>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>,>>,>,>,>,>,>,>,>,>>>,>>,>>,>>,>>,>>>,>,>>,>,>,>,>,>>,>,>,>>,>,>,>,>,>,>,>,>,>,>>>,>,>,>,,>,>,,>,,,>,>,,,>,,,,>,,>,>,>,>,>,,,>,>,,,,,,,,>,,,,,>,,>,,,,,,,,,>,,,>,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,,,,',,',',,,,',,,,,',',,',,,',,,,,',,,,',,',,',,,',,',,'',,,',',,,'',',,,',',',',',',',','',','','',',','','','',','','',,'','',',''',''''',''','''','''','','','''''','''''',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;>>;>>>>;>>;>>>>;>>>;>;>>>>>;>>>>;>>>;>;>;>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>,>>>,>,>>,>,>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>,>>,>,>>,>>,>>>,>>,>,>,>,>,>,,>,>,>,>,>,>,>,>,,,>,,,,,>,,>,>,,,>,,>,>,>,,>,,>,>,,>,,,>,,,,,,,>,,,,>,>,,>,,,,,>,,,,,,,>,,,,>,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,,,,,,,,,,,,,',,,,,,',,,,,,,,',,,',',,',',,',,',,,',,',,',,,'',,',''',,,','',',',',',',',',',,'',',',','',',''',','',','','''',','''',,''',',''',''','''','''''''''''',''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>;>>;;>>>;>>;>>>>;>>>>>;>;>>>>;>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>,>,>,>,>,>,>,>>>,>>,>,>>,>>,>>>,>,>,>>,>,>,>,>>,>>,>>>>,>,>,>,>,>,>,>,>,>,>,>>>,>,>,,>,>,>,>,,>,,>,,>,,,>,,,>,,,>,>,>,,,>,,,,,,,,,>,,>,,,>,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,',,',,,',',',,,',,,,,',,,',,',,,',',',',',',,,,',',,,,'',',,',',',',',',',','',',','',',','',',','',','','',','''',',''',''''',''','''','''',','',''','''''','','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;>>;>>>;;>>;>>;>;>>>;>;>>>>>>;>>>;>>>>;>>>>;>>>>;>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>>,>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>>,>,>>>,>>>,>>,>>,>,>>>>,>,>>>,>,>,>,>,>,,,,>,>,>,>,>,>,>,>,>,>,>,,,>,>,>,,>,>,,>,>,,>,>,,,>,,,>,>,>,,,,,,,>,,,>,>,>,,,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,',,',,,,,,,,,,,',',,,,,,,',,,,,,,',,,',',,,',,',,,',,,,',,,',,','',,',','',,,',',,',',',',',',',',',',',,','',',',''','','','','''',',''','''',',''',''','''','''''''','''''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>>;>;>>>;>>;>>>>;>>;>>>;>;>>>>>>>>;>>>>;>>>>;>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>>,>>>,>,>>>>>>,>,>>,>,>,>,>,>,>>>>,>,>>,>>>,>>,>,>,>,,>>>,>,>,>>>,>,>,>>>>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,>,,,,>,,>,,>,,,,>>,,>>,,,,,>,>,>,>,,,>,,,,,,>,>,,>,,>,,,,>,,,,,,,>,,,,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,',,',,,,',',',,',,,,',',,',,',',',',,'',,',,,,,',',',,,'',',',',',',',',',',','',','''',,',''',',',',',',''',',''',',''',''''',''',''',''''','','''''''''''''''''''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>;>>;>>;>>;>>>;>>>;>>>;>>>>>>;>>;>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>,>>>>>>>>,>>>>>,>>,>>>>>,>>>>>>>>>>>>,>,>>>>>,>>,>>,>>,>>,>>>,>,>,>>>,,,>,>>>,,>,>,>,>,>,>,>,>,>,,>,>,,>,>,>,,>,>>,>,>,,>,>,>,,,>,,,,>,>,,,,,,,,,>,,,>,>,,,,,,,,,,,>,,,,>,,,>,,,,,,>,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,',,',,,',,,',,,,,,,,',,,,,,',,,',,,,,',,,',,,',,,',,',',','',,',,','',,',',',',',',',',',',','',',,',''',','',','''','',','',','''',','',',''',''','''','''''''',''',''','','''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>;>>;>>>;>>;>>;>>>;>>>;>;>>>>;>>>;>>>>>>>>;>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>,>,>,>,>>>>>,>,>,>>,>>,>>,>>,>>,,>>,>>>,,>>>,>>,,>>,>,>,>,>,>,>,>,>,,>,>,>,>,,>,>,>,,,,,>,,>,>,,,>,,,,>,>,,>,>,>,>,>,,,>,,,,,,>,,>,>,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,',',,',,',',,,,',,',',',,',',,',,'',,',,,',',,,',',',',,',',,,',',',',',',',',',',''',',',','','''',,'','','',''',','','','''',''','''','''','',''''','''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>;>>>;>>;>>;>>;>>>;>>>;>>>>;>>>>>>>>>>;>>;>>>>>>>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>,>>>>>,>,>>,>,>>>,>>>>>>>>>>>>>,>,>>,>>>,>>,>>>,>,>>,>>>,>>,>,>>,>,>,,>>,>>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,>>,,>,,>,>,,>,>,>,,,>,,,,,,,,,,,>,,,>,>,,,,,,,,>,,>,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,',,,,',,',,,,,,,,,,,,,,',,,',,,,,',,,',,,,',,',,,',,',',,,',',,',,','',,','',',',',',',',','','',,,'',','',',',,''','','',''','''',''''''',''',''',''''','''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>;;>>;>;>>>>>>;>>>;>>;>;>>>;>;>>;>;>>>>>>>>>;>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>,>>>>>>>>>>>>>>>,>,>,>,>,>,>>>>,>>,>>>,>>,>>,>>,>,>,>>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>,,>,>,>,,>,,>,,,>,,,,>,,>,,>,>,>,>,>,>,,,>,,,,>,,>,,,,,,,,,,,,,,,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,',,,,,,',',,,',',',,,,',,,',',,',,',',,',,,',,',',,',',',',',',',,,',',,',',',',',',',',',','''',',','','','',,'','','','',','',',',',''',''','','','''',''''',''''''','','''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";;>>;>>>>;>>>;>;>;>>;>>>;>>>>>>>>>>;>>>>>>;>>;>>>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>,>>>>>>>>>>>>,>>,>>>,>>,>>>>>>>>>>>>,>,>>>>,>,>>,>>,>>,>>,>>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>>,>,>,,>,>>,,,,>,,>,>,>,>,>,>,,>,,>,,,,,,,,,,,,,>,,,,>,,,,,>,,>,,>,,>,,>,,>,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,,,,,,,',,,,,',,,,,,,',',,,',,,,,,,',,,,',,,',',',,',',,,',,,',',,','',,',',',',',',',',',',',',,,','',','','','',',','','',','',''''''''',''','''''''''','''','''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>;>>;>>>>;>>;>>;>>>;>;>>;>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>>>>>,>>>>>,>,>,>,>,>>>>>>,>,>>>>,>>,>>,>,>>,>,>>,>,>,>>>,>,>,>,>>,>>,>,>,>,>,>,>,>,,,>,,>>,>,,,>>>,,>,,>,,>,,,>,,>,,>,,>,>>,>,>,>,>,,,>,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,',,,,',,,,',,,,,',,',,,,,',,,',','',,',',,',',,,,',,',,'',,'',',,',',,,',',',',',',',',','','',''',',','',',','',''',''''','''','',',',',''',''','',','','''',''''''''',''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>>>;>;;>>>>>>>;>>;>>>>;>>>;>>;>>>;>;>>>>>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>,>>,>>>>,>>>>>>>>>>>>,>,>,>>>,>,>>,>>>,>>,>,>>>,>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,,>>,>,>,,,,>>,,,,,>,>,,>,,>>,,>,,,>,,>,,,,,,,,,,,,,>,,,>,,,>,,>,,,,,>,,,>,,,,,,>,,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,',,,,,',,,,',,,,,',,,,,,,',',,,',,,,,,,',,',,',,,,',',',,',,,',,,,,'',','',',,',',',',',',',',',',',',','',','','','',,'',',','',','',''''''',''',''',''''''''',''','''''''''','',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;;>>;>>>;>;>;>>>;>>>;>>>>;>>>>>;>>>>>>;>>>>;>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>,>>,>>>>>>>>>>>>,>>>>>>>,>>>,>,>,>,>,>>>>>>,>,>>>,>>>,>,>,>>>,>,>>>,>>,>,>,>>>,>,>>,>,>,>,>,>,>,>,>,>,,>,>,>>>,,>,>,>,>,,>,,>,,,>,,>,,,>,,>,>,>,>,>,>,,,>,,,,,,,,,,>,,,,,,>,,,>,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,',,,',,,,,',',,,,,,',,,',',',,,',,',,',',',,,',',',,',''',,',,,,',',',',',',',',',',','',',','',,'','',',',''','',''','''','',',',''',''',''''',','',''''''','',''','''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>>;>>>>;>>>>>>;>>>;>>>;>>>>;>>>>>;>>>>>;>>>>>>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>,>>>>>>,>,>>>>,>>>>>>>>>>,>,>,>>,>>,>>,>,>>>>>,,>>,>,,>>,>>,>,>,>,>,>,,>,>,,>,>,>,>,>,>,>,>,,>,,,>,>,>,>,,,>,,>>,,>,,,,>,>,,,>,,,,,,,,,,,,>,,,>,>,,>,,,,>,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,',',,,,,,',',,,,',,,,',,',,',,',,',,,'',,',,',',',,,,','',',',',',',',',',',',',',,''',',,'','','',''',',',''','',','','''''',''',''',',''''''''''',''''''','''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>;>;;>>>;>;>>>;>>>;>>>>;>>>;>;>>>>;>>>>>;>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>>,>>>,>>,>>>>>>>>>>,>,>,>,>>>>>>,>>>,>>,>>>,>,,>,>>,>>>>>,>,>,>>,>,>,>>,>>,>,>>,>,>,>,>,,>,>,>,>,>,>,,>,,,,>>,,>,,,>,,>,>,,,>,>,,>,>,>,>,>,>,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,>,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,',,,,',,,',,',,,,,,',,',,,,',',,',,,,',,',,',,',,',',,',,',,,',,''',',,',',',,',,',',',',',','','',,',''',',',','',,'',''',',',''',''',','''',''','''''','',','',''','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>;>>>>>;>>>>>;>>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>,>,>>,>>>>>>>>>,>,>>>>,>>,>>>,>>>>,>>,>>,,>,>>,>>,>,>,>,>,>,>,>,>,,>,>,>,>,>>,,,>,>,>,>,>,>,>>,,>,>,>,>,>,>,,,>,,>,,>,,,,,,,,,,,,>,,,,>,>,,,,,>,>,,>,,>,,>,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,',,,,,,,,,,,,,,',,,,,,',',,,,,,,',',,',,',,,,,',,',,,',','',,',,,,,',',',,',','',',',',',',',',','',',,'','','',''','',','''''','',',''',',''',''',','''''''''''''''''''''','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>;>;>>>;>;>>>;>>;>>>>;>>;>;>>>>>;>>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>,>>,>>>,>>,>>,>>>>>>>>,>,>,>,>>>>>,>,>,>>>,>,>,>,>>,>>,>>,>,>>,>,>>,>>>,>,>>>,>,>>,>,>,>,>,,>,>,>,,>,,>,>,,>,,>,,,>,,>,,>,,>,,>,,,>,,>,>,>,>,>,>,,>,,,,,,,>,>,,,,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,',,',,',,,,',,',,,,',',',,,,,',,',,',',,,',,'',,',,,,',',''',',',,',',',,',',',',',',','',','''',,'','','',,'',','',',','','''',''''',''','''''','',''','','''','','''''''''','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>;>;>>;>>;>>;>>;>>>;>>>>>>>>>>;>>>;>>>;>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>,>>>>>>>>>,>,>>>>>>,>,>>>,>>>,>,>,>,>>,>,>,>,>,>,,>>,>,,,>,>,,>,>,>,>,>>,>,,>,>,>,,>,>,,>,,>>,,>,,>,,,,,>,,,>,,>,,,,,,,,,,,,,,,>,,,>,,,,,,,,>,,>,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,',,,',,,,',,,,,,,',',,',,,',,',',,',,,',,,'',,',',,,',,',',',','',',',',',',',','',',,,'',','',','',',''','',''','',',''',',''',''','','''''','''''',''''''''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;;>>>>;>>>>>;>>;>>>;>>>;>;>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>,>>>>,>>>>>>,>>>>>>>>>>,>,>,>,>>>>,>,>,>>>,>>>>,>>,>>>,>>,>>>,>>,>,>>>,,>>,>>>,>,>,>,>,>,>,,>,>,>,,>,>>,>,,>,,>,,,>,>,,>,>,>,,>,>,,,,>,>,>,>,>,>,>,,,,>,,,,>,,>,,,,,,,>,,,,,>,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,,',,,,,',,,,,,,,,',,,',',',,,,,',,',,,',,,,',',',,'',,',,',,'',',',',,',',,',',',',','','',,',''',','',','',''',','',''','','''','''''',''',''''''',','''',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>;>;>>;>;>>>;>>>;>>>;>>>>>>>;>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>,>>>>,>>>,>>>>,>,>>>,>>>>>>>>>,>,>>>,>>,>>,>,>>,>>,,>>,>>,,>>,>>,>,,>>,>,>>,,>,>,>,>,>,>,>,,>,>,>,,>,,>,>,,>,,>,>,,>,>,,,>,,>,,,>,>,,,,,,,,,,,,,,,>,,,,>,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,,',,,,',',,',,',,,,,,,,',',,,,',',,',',,',,',',,,',',,',,,',',',',,','',',',',',',',','',',','',',''','',,'',',''','','',','',',',''',''','','''''',''',''',''''','''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>;>>>>>>;>>>;>>>;>>>>>;>;>>>;>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>,>>>>>,>>,>,>,>,>>>>>,>>>,>>,>>>,>>,>,>>,>>,>>>,>,,>>>>,>,>,>,>>,>,>,>,>,>,>,>>,>,>,>>,>,>,,>,>,>,>,>,,>,,>,>,>,,>,,>,,>,>,>,>,>,>,>,,,>,,,,,>,,>,,,,,>,,,>,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,,,',,,',,,,,',,,,,,,',,',',',',,,',',',,,',,,',,',',,',',,,',','',,',,','',',,',',',',',',',','',',',','',',',','',''',',',''',''',''''''',''',''',''','''''''''''''''''''',','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>>;>;>;>>>;>>>;>>>>;>>>>>>>>>>>;>>>>>>;>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>>>>>>>>,>>>,>>>>>,>>>>>,>>>>>>>>>>>,>,>>,>,>>,>>>,>>,>,>>>,>,>>,,>>,>>,,,,>,>>,>,>,>,>,>,>,>,>,>,,,>,,>,,,,>,>,>,,>,,,,>,>,,>,,,,,>,,>,,,>,,,,,,,,,,,,,>,,,,,>,,,,,,,>,,,,,,,,,>,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,,,',,,,,',,,,,',',,,,,,,,,,,,',,,',,,,',,',',,',,,',,',',',,',,',',',,',,,'',',',',',',','',','',',',','',',''','',,''''',',''','''',',''',''',''''''','',','','''''',''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>>;>>>;>;>>>;>>;>;>>;>>;>>;>>;>>>>;>>>>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>,>>>>,>,>,>,>,>>>>,>>>,>>,>,>>,>>>>,,>>>,>,>>,>>,>>>>>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>>>,>,,,>,,>,>>,,,>,>,>,>,,,>,,>,>,,>,>,>,>,>,>,,,>,>,,,>,>,,,,,>,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,',,,,,',',,,',,,,,,,',',',',',,,',,,',',,',,,,',',',,',,,',',',',',',,',',',,',',',',',',',','',,',',''',',''',,'',''',','''',','',','''',''',''',',','''''''''''',',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>>>;>>>>>;>>;>>>>>>>>>>;>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>,>>>>,>,>>>>>,>>>>>>>>>>>>,>>>,>>,>>,>>,>>,,>>>,>,>>>,>>,,>,>,,>,>,>,,>,>,>,>,>,>,>,>,>,>,,>,,,,>,>>,,>,>,,>,>,,>,,,,>,>,,,>,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,>,,>,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,',,,',',,,',,',',,',,',',',',,,',',,',,'',',','',',',',',',','',','''',',,','',,''',',','',',','','',''',',''',''',''''''','','',',''''''','''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>;>>>;>;>>;>>>;>>;>>;>>>>>;>>>>>>>>>;>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>,>>,>>>,>>>>>>,>,>>>,>,>,>,>,>>>,>,>>>>,>>,>>,>>>,,>>,>,,>>,>>,>,>>,>,>,>>>,>,>,>,>,>,>,>,>,,>,>,>>,,>,,,>,>,,,>,,>,,>,>,,,,>,>,,>,,,>,>,>,>,>,,,,,>,,,>,>,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,,',,,',,',,',',,,,,,,',',',',,,,',,',,',,,',,,',,,',,,',',,'',',',',',,',',,',',',',',',','',',',',,','''','''',',''',',''','','','',''''',''',''','''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;;>>>;>>>>;>>>;>>>>>;>>>>;>>>>;>>>>;>>>>>>>>;>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>,>>>>,>,>>,>>,>>,,>>>>,>>>>,>>,>>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,,,>,>,,>,>,,,,>,>,,>,,>,,>,,,,,,,,,,>,>,,,>,,,,,,,,,,>,>,,,,>,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,,,,',,',',,,,,,,,',',,',,',,',',,',,',',',',,,',,,,,',,',',',,',',',',',',',',',,',',','',',,',',',,''',,'','','','','','',',''',''','''',','','',''','''','''''''','''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>;>>>;>>>>;>>>;>;>>>>>;>>;>>>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>,>>,>>>,>>>>>,>,>,>,>,>>>,>,>>>,>>>,>>>>>,>,,>>,,>>,>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,,>>,,,>,>,,>,>>,,,>,,,>,,>,,,>,>,>,>,,,,,,,,,,>,,,>,,>,,,,,,,,,,>,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,',,,,,,,,,',',',,',,,,',,,,',',',,,,,,,,,',,',,,,',,',',',,','',',',','',,',,',',',,',',',',',','',''',','','',''',''',''',''','',''''',''''''',''',''',''''''''',''',''','''','',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>>;>>;>;>>>;>>>>;>>;>>>>>;>;>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>,>>>>>,>>,>,>>>>>>>>>>>>,>>,>>>>>>>>>>>,>>>>,>,>>,>>>,>,>,>>>,>>,>,>>>,>,>,>>,>>,,>,>,>,>,>,>,>,>,>,,,>,>>,>,>,>,>,,,>>,>,,>,>,,,,>,,,>,,>,,,>,,,,,,,,>,>,>,,>,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,,,,,',,,,,',,,,,,,,',',',',,',,',',,',,,,,',',,,,,,',',',,',',',',',',',',',',',',',',','',',','',,'',,',','',,'',''',','',',',''',''',''','','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>;>>>;>>>>;>>>;>>>>>>>>>;>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>>>>,>>,>,>>,>>>>>>,>,>,>,>,>>>,>,>>>>,>>,>,>>,>>,>>,>>,>>,,>,>>>,,>,>,>>>,>,>,>,>,>,>,>,>,>,>,,,,>,,,>,,>>,,,,,>,>,,>,>,,>,>,,,,>,,>,>,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,',,,',,',,,,',,,,',',',',,,,,,,,',,',,,',,,','',,,','',',',,',',',',',,,',',',',',',',',',',',',','',,''','''',','''','','','',''','',''',''','''''''''','','''''',''''''','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>>>;>;>>>;>>>>;>;>;>>>>>;>>;>>>>>>;>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>,>,>>>>>>>>>>>>,>>>>,>,>>,>>>>,>>,>,>,>,>>,>>>,>,,>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>>,>,>>,,>,,,,>>,>,,,>,,>,,>,,,>,>,>,,,,,,,,,>,>,>,>,>,>,,>,>,,>,>,,,,,,>,,>,,,>,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,,',,,,,,,,,,,,,,,,,,',,,,,,,,,',',',',,,,,',,',',,',,,',',,,',,',',,',,',',''',',',',',',',',',',',',',',''',','',,'',',',''',','',''',''''',''',''',','',',''','',','''','',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>;>>>>>;>>>;>>>>>>>>;>>;>>>>>>>>;>>>>;>>>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>,>>,>>>>>>>>,>,>,>,>,>,>>,>,>>>,>>,>,>>,>>,>,>>>,>,>,>,>>>,,>,>>,>,>,>,>,>,>,>,>,>,,>,,>,,>,>,,>,>,>>,>,,>,>,>,,,,>,,>,,>,,,,>,>,>,>,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,',',,',,',',,,,',',',,,,,,,,,','',,,',,,,',,'',',,',,',,,',',',',,',,,,',',',',',',','',',','','',,'','',''',''',',','''','',','','''',''','''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>>;>;>>>;>>>;>>;>>>>>>>>;>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>>>>>>>,>>>>>,>,>>,>>>>>>>>>>>>>>>>,>>,>>,>>>>,>>,>>>>,>,>>>,>,>,>,>>,>,>>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,>,,>,,,>,,>,,>,,>,>,,>,,>,,>,>,,,,,,,,,>,>,>,,>,,,>,,>,,>,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,',,,',,,,,,,,,,,,,,,,,,,,,,',,,,,,',',',',,,,,',',,',',,',,,,,',',',',',',',',',,'',',',',',',',',','',''',',','',',',',',',',''''',','','','''',',''',''',',','',',''','''',''''','',''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>;>>>>>;>;>>;>>>>>;>;>;>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>>,>>>>>>,>>>,>>>>>>>>>,>,>,>,>,>,>,>,>>,>>,>>,>,>>,>,>,,>,>>,,>>>,>,>,>,>>,,>,>,>,>,>,>,>,>,>,>>,>,,>,>,>,>,,>,>,,>,,>,,>,,,>,,,>,,>,,,>,>,>,,>,,,,,,,,,,,>,,,,,,,,>,,,,,,,>,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,',,,',',,',,',,,,',',',,,,,,,,',',,,,',,',,',,'',',',,,',,,',',,,','',,',',',',',',',',',,'',,',',',','''','','','',','''',''','',','''',''',''''''''''''',''',''''','''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";;>>;>>;>;>>>>>>>>>;>>>>>>>>;>>>>>>>;>>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>,>>>,>,>>>>>>>>>>>>>>>>>,>>,>>>,>>>,>>>,>>>>>,>>>,,>>,>,>,>,,>>>>,>,>,>,>,>,>,>,>,,>,>,>,>,,>,>,,>,,>,,>,>,,>,,>,>,,>,,,>,,,,,,>,,>,>,>,>,>,,,>,,>,>,,,,,,,>,,,,,,>,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,,,,,',,,,,,,,',',',',,,',',,',,',,',,,',,,'',,'',,','',,',,,',',',',',',',',','',,'',',','',',,'','',',',','',,''','',''''',''',''','',''','','''''''''''''''''','','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>;>>;>;>;>;>>>>;>>>;>>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>,>>>>>,>,>,>,>,>,>,>>>>,>>,>>,>,>>,>,>,>,,>>,>>>>,>,>>>,>>>,,,>,>,>,>,>,>,>,>,,>,>,>,>,,>,>,>,,>,>,>,,,>>,,>,,,>,,,>,>,,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,',,,,,',,',',',,,,,',',',,,,,,,,,',,,',,,',,,',,'',,'',,,',,,',',,'',,'',',',',',',',',','','','',''',,'','',','','''''',''',','''',',''',''',''',''','''''','','''','''','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>;>>>>;>>>>>>>>;>>>;>>>>;>>>>>;>>>;>>>>>;>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>,>>,>>>>>>>>>>,>>,>>>>>>,>>>>>>>>>>>>>>,>,>>>,>>,>>>,>>,>>,>>,>,>,,>,>,>,,>,>,,>>>,>,>,>,>,>,>,>,>>,,>,,>,>>,>,,>,>,,,>,>>,,,,>,,>,,>,>,,,>,,,,>,>,>,>,>,>,,>,,,>,>,,>,>,,,,,,,>,,,,,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,',,,,,,,,,,,,,,,,,',,',,,,,,',',',',,',',,,',,,',,',,,',,,'',,',',',,',,'',,,,',',',',',',',',,',',',',','','','',',',',,','',','',',','''',''',''',''''''''',''''''','''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>;>>>>;>;>;>>>>;>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>,>,>>,>>>>>>>,>>,>>>,>,>,>,>,>,>>>>,>,>>,>>,>>>,>>,>>,>>>,>>>,>>,>>,>>,>>,,>,>,>,>,>,>,>,>,,>,>,>,>,,,,>,,>,,>,>,,,,>>,,>,,,>,,,>,>,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',',,',,,,,,,,,,',',,,,,,,,,,',,,',',',',,',',',,',,,',',,',',',',,','',',',',',',',',''',',','',',',','',''','''','''','',''','',',''',''',''','','',''','',''''''''''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>;>;>>>>>>>;>>>>>>;>>;>>;>>>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>>>>,>,>>>>,>>>,>,>,>,>,>>,,>>,>,>,>>,>,>,>,>>>>,>,>,>,>,>,>,>,>,>,>,,>,>>>,>,,>,>,,,>>,,,>,>,>,,,>,,>,,,,>,>,>,>,>,>,>,,>,,,,,>,,>,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,',',,',',,,,,,',',',',,,',',,,',,,',,',,',',',',,',',,',',',',',,',',',',',',',',,','',',,',',''','',,',',,'',','','''',''''''',''','',''','''''','''''''',''',''''''''''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>;>>>>;>;>>;>>>;>>>>>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>,>>>>>>>,>>,>>,>,>,>,>,>,>,>>>>,>,>>,>>>>,>>>,>>,>>>,>>,>>,,>,>,>,>,,>,,>,>,>,>,>,>,>,,>,,,>,>,>,,,,>,>,,,>>,,,>>,,,,,>,>,,>,,>,>,,,,,,,,,,,,,,,,,>,,,,,,,,,>,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,,,,',',',,,,,,,,',,,,,',,,',,',,,',,,',,,',,',',',,',,',,'',',',',',',',','','',','''','',,'','''',''',''',''',','',',',''','''''','''','',''','''''''''''','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>>;>;>>>>>>>>>>>;>>;>>;>>>>>;>>;>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>,>>>>>>>>>,>>>>>>,>,>>>>>>,>>>>>>>>,>>>>>>,>,>>>,>>,>,>>>,>>,>>,>,>,>>,>>>,>>,>>,>>,>>,>,>,>,>,>,>,>>,>>>,,>,,>>,>,,,>>,,,>>,,,>,>,>,,,>,,,>,,,>,,>,>,>,>,>,>,,,,,>,,>,>,,,,,,,>,,,,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,',,,,,,',,,,',,',,',',,,,,,,,',',',',,,',',,,',,',,',',',',',',',,',',',',',',,,',',',',',',',',',',',',,',','',',',','',','','',',''',','''',''',',',''''''''''''''','''','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>>>>>;>;>;>>;>>>>>>>;>>>>;>>>>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>,>,>>>>,>,>,>>>>,>,>>,>>,>>,>>,>>,>,>,>,>,>>,>>,>,,,>>,>,>,>,>,,>,>,>,>,>,>,>,,,>,,,>,>,>,,>,>>,,,>>,,,>,,,,>,,>,,>,>,,>,,,>,,,,,,,,,,,,>,>,,,,,,,,,,,>,,,,,,,,>,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,',,',,,',,,,,,,,,,,,',,',,,,,,,,,,',',,',',',,',,,',,',',,',,,',',',',',','',',',',',',',','','','','',',','',''',','','','','''',''''','''',''''''','',','','',''''','''',''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>>;>;>>>>>>>>>;>;>;>>>>;>>>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>,>>>>,>>>,>>>>>>>,>>>>>>>>,>>,>>>>,>>,>>,>>,>>,>>>,>>,>,>>,>>>>>,,>,>,>,>,>>,>,>,>,>,>,>,>,>,,>>,>,,>,>,,,,>>,,,>,>,>,>,,>,,>,,,,>,,,,,,>,>,>,>,>,,,,,,,,>,,>,,>,,,>,,,,>,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',',',,',,,',,',',',',',,,,,',,,,,',,',',,',,,',,',',,,',,,',',,,',',',',',',',',,',',',',',',',','',,'',','','','',',',',','',',''',',','''''''''''''',''''''''''','''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>>>>;>;>>;>>>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>,>>,>>>>,>,>,>>>>>>,>,>>,>>,>>,>>,>>,,>>,>>>,>,>,,,>,>>>,>>>,>>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,>>,,,,>,,>,>,,,>,,,>,,>,>,,>,>,,,,,,,,,,,,>,,>,,>,,,,,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,',,,,,,,,,,,',,',,,,,,,,,,','',,',',,',,,,',,',',,',',,'',',',',,'',',',',',',',','',',',','','',''',''','','','','''',''''',''''''',''''''',','',','',''''',''''''',''',''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>;>;>>>>;>>>>;>>>;>>>>>>>>;>>>>>;>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>,>>>,>>>>>>>>>>>,>>>>>>,>,>,>>>>,>>,>>,>>,>>,>>>>,>,>,>,>>>>>,>,>,>,>,>,,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,,>>,>,>,,>,,>,,>,>,,>,,,>,,,,>,>,>,>,>,>,,,,,,,,,>,,>,>,,,,>,,,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,',,',,,,',,,',,',,,,,,,',',',',,,,,,,',,,',,,',,',',,',',,',',,,',',,'',,,,',',',',',',',,',''',',',',',',',,'','','','',',''',',''',',','''',','''''''''''''','''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>>>;>>>>>;>>>;>>>>;>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>,>>,>>>>,>>>,>>>>,>,>>,>>>>,>,>,>>>>>>>,>>>,>>,>>>>>,>>,,>,>>,>>>,>,,>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,,>,,>>,>,,>,>>,,,>,,>,,>,>,,,>,,>,,>,,,>,>,,,,,,,,,,,,,>,>,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,',,,,,,,,,,,,,,,,,',,,,,,',,',,,,,,,,,',',',,',',,',',',,,',',,',',,',',',',',,''',',',',',',','','',,',',',','','''','',',',','',','','',',''''',','''','','',''',','''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>;>>>;>;>>>;>>>>;>>>>>>>>>>;>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>,>,>,>,>,>>,>>>,>,>>,>>,>>,>>,,>>,>>>,>,>,>,>>>,,>,>,>,>,>,>,>,>,>,>,>,,,>,>,>,,,>,,>,,>,,>,,>,,>,,,,>,>,,,,,,>,>,>,>,>,,,,,,,,,>,,>,,,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,',,,,',',,,',,',',',',,,',,,',,',,',,,,,',',,,',,',,',',',',,',',,,',',',',',',',',','',',''',',''',,',','','''','''',''','''',',''''','',''''''','''''',''''''','','''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>;>>>>>>>>>>;>>>;>>;>>>>;>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>,>>>>>,>>,>,>>>,>,>,>,>>>>>>>>>,>>>,>,>>,>>,>>>,>>,>>>,>,>,>,>,>>>,,,>>,>,>,>,>,>,>,>,,>,>,,>,>>,,>,,>,>,>,,>,>,>,,>,,,,>,>,,,>,>,>,,,,,,,,,,,,>,,>,,,,,,,,,>,,,,,>,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,',,',,',,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,',,',,','',',,'',,',,',,,',',,',',',',',',',',',',',',','','',,','',,'''',','',',''',','','',',''''',','''''','','''''','''''',',''''''',''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>;>>;>>;>>;>>>>>>>>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>,>>>>,>>>>>>,>>>>>>>>>,>>>>>>>>>,>,>,>,>>,>,>>>,>>,>>,,>,>,>,,>>,>,>,>,>,,>>>,>,>,>,>,>,>,>,>,>,,>,>>,>,,>>,>,>,,>,>,,>,,,>,,>,>,,>,,>,,,,,,,>,>,>,>,>,,,,,,,>,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,,,,,,,,,',,',',,,,',',',',',',',,',,',',,',,,',,,,,,',,,',',',',',',',',,',',',',',',',',',','',',',''',','',',,'''','',',',''','',''''',','''',',',''''','',''','',''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>>>>;>>;>>;>>;>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>,>>>>>>,>,>,>>>>>>>,>>,>>>,>,>>,>>,>>>>>,>>>>,>>>,>,>>>>,,>>,>,>,>,>,>,>,>,>,>,>,,,>,,>,,>,,,,>,>,,>,,>>,,>,,,>,,,>,,>,>,>,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,>,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,',,,,,',,,,,,,,,,,,,,,,,,',,,',,,',,',','',',',,',,',',',,',',',',',',',',',',',','',',',',,,',',''','',,,','','''','','',',',''''','''''''','''''''''''''''''''','','''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>;>>>>>>>>>;>>>>>;>>>;>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>,>,>>>>>>>,>>,>>>>>>,>,>,>>>,>>>,>>>>,>>>,>>,,>,>>,,>>,,,>>>,,,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>>,>,>,>>,,>,,>,>,,,>,,,>,,>,>,,>,,,,,>,>,>,>,>,,,>,,,,>,,>,,>,>,,,>,,>,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,',,,,,',,,,,,,',,,',,',',',',',',',,,',,,',,',,',,,,',',,',,',,,',',,',',',,,',',',',',',',',,',',',''''',',,'','''',','',','','','','''',',''',',',''''',',',''','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>>>;>>;>>>>>>>;>;>>>>>>>;>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>>,>>>>,>>>>>>>>,>,>>>>>>>,>,>,>>>>>>,>>>,>>,>,>>>,>,>,>>>,>,>>>,>>>>,,>>>,>,>,>>,>,>,>,>,>,>,>,,>,,>,>,,,>,,>,,,>,,>,>,,>>,,>,>,>,,,,>,,>,>,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,,,,,,,,,,,,',,',,,,,,,,,,,,,,,,,,,,,,',',,',',,',,,'',,',,',',',,',','',',,,',',',',',',',',','',''','',,,,''''','',',''','''',''','','','''''',''''''','','''''','''','',''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>;>>;>>>;>>;>>>>>>>;>>>>>>>>>;>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>,>,>>>>>>>>>,>,>>>,>>,>>>>,>,>>>,>,>,>>>,>,>,>,,>,>,>,>>,>,,>,>,>,>,>,>,>,>,,>>,>,>>,>,>,,>,>,>,,,>,,,,>,,,,,>,>,,>,,,,,>,>,>,>,>,,>,,,,,>,,>,>,,,>,,,,>,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,',,,,,,,',',,',',',',',',',',,,,',,,,',,,',,,',,',,',,',',',,,,',',',',',',',',',',','',',',',''''',',,',','',','',',',','',''''',',',''',',',''''''','''',''''''''',''''','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>;>>;>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>>>,>>,>>>>>,>,>,>,>>>>>,>>,>>,>,,>>>>,>>,>>,>,,>>,>>,>>,>>,>,>,>,>>,>,>,>,>,>,>,>,>>,,,,>,,>,>,,>,>,,,>,>,>,>,,,>,>,,,,>,,>,>,>,,,,,,,,,,,,,,>,,,,,,,,,,>,,,>,,,,>,,,,,,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,',',,,,,,,,,,,,,,,,,,,,,,,',',,',',,',',',,',',',,',,,',,''',,',',,',',',',',',',',,',',',',,',,','''','',''',,''',''',''',',''''''','''''''',',''''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>;>>;>>>>>>>>>>>;>>>>>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>>>>>,>>>>>>>>>>,>>,>>>>>>>>,>,>>>,>>,>>>>>,>,>>,>>,>>>>>,>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,,>>,>,>,,>,>>,,,>,>,>,,,>,>,>,,,>,>,,>,,,,,,>,>,>,>,>,,>,,,,>,>,,,>,,,,,,,,,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,,,',,,,,,,,',,,,,,,',,',,',',',',',',',',,,',,',,',,,,',',,,',',,'',,'',,,',',',',',',',',',',','','','','','','',,'','',,'',','''','','','',',',''',',',''''''','''',''',''',''''','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>>>;>>;>>;>>>>>;>>>>>>>>>>;>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>,>>>>,>>,>>,>>>>>>>,>,>,>>>>>,>>>,>>,>,>>>>,>>,>,>,>,,>>,>,>,>,>>,>>>,>,>>,>,>,>,>,>,>,>,,>,,>,>,,>,>,,,>>,>,,,>,>,>,,,,>,>,,>,,,>,>,,,,,,,,,,,,>,,,>,,,,,>,,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,,',,,,',,',,,,,,',,,,,,,,,,,,,,,,',,',,,',,',',,,',',,,',',,',,',',',',',',',',',',',',',',',',',',','',','',',''','''',',''','','','''''',''''''','',''''','''''''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>>;>>>>>>;>>;>;>>>>>>>>>>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>>,>>>,>>>>>>>,>>,>>>>>>>,>,>>>,>>,>>,>>,>,>>,>>>,>,>>>,>>>,>,>,>>,,,>,>,>,>,>,>,>,>,>,>,>,>>,,>,>,>,>>,,,,,>>,,>,>,,>,>,,,,>,,>,,,,>,>,>,>,>,>,,,,,,,>,,,,,,>,,,>,,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,',,,,,,,,',,,,,',',',',',',',,',,',',,,',,,'',,',',',,,',',',',',,,',',,',',',',',',','',',',',',',,''','',',','',,''',','','','''',',''',',',''''''',''''',''''''''''''',''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>>;>>>>>>>>>>>;>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>,>,>>>>,>>,>,>,>>>>>,>>,>>>,>>,>>>,>>,>,>>>,>,>,>,>,>>,>,>>>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,>,,,,,>>,>,,,>,,,,>,>,,>,>,,>,,>,>,,,,,,,,,,,,,>,>,,,,,>,,>,,,>,,,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,,',,',',,,',,,,,,,,,,,,,,,,',,',,,,',',,',,,',,,',',',,,',',,,',',',',',',',',',',',',',','','',''',,'',''','',''',''',','','',','''','''''''',',''''',''''',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>;>>;>>;>>;>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>,>>,>>>>>>,>>>>>>>>>>>,>,>>>,>>,>>>,>>,>>,>,>>,,>>,>,>,>>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,,>,>>,>,>,>,>>,,>,,>>,>,>>,,,,,>,,,>,,,>,,,,,>,>,>,>,>,,,,,>,,>,,,,,,,,,,,,,,,,>,,,,,,>,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,',,,,,,,',,,',,,,,,,,,,,,,',',',',',',,',,',,,',',,,',,',',',',,,','',,',''',',',,',',',',',',',',','',',',',',,'',',',,',','',',','''','','''''',''',',',''''',','''',''''''''''','''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>>>>>;>>>>>;>>>>;>>>>>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>,>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>,>,>,>,>>>>,>>>,>>,>>>,>>,>>,>,>>>,>>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,,>,>,,>,,>,,,,>,,,>>,>,,>,,,>,>,,>,>,,,,,,,,,,>,,,,,,,,,,>,,>,,,,,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,',,,',',,,,,,,,,,,,,',,',,',,',,',,,',,',,',,'',,,,,',',,,,',',',',',',',',',',',',','','',''','','''''','',''''',',''','',',',''',''''''',''''''','''',''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>;>>>>>;>>>>;>>>>>>;>>>>;>>>>>>>>>>>>;>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>,>>>>>>>,>>,>>>,>>,>>>>>>>>>>>>,>,>>,>>,>>,,>>,>>,>>,>>,>>,,>>,>>,>,>>>,>,>,>>,>,>,>,>,>,>,>,>,,>,>>,>,>,>,>,>,>,,>>,,>>,,,,,>,,>,>,,,>,,,,,>,>,>,>,,,>,,>,,>,>,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,',,,,,,',,,,,,,',',',',',,,',,,,,',,',,',',,',,',',,,'','',,','',',,',,',',',',',',','',',',',',',,'',',',',,'','',,',''',','''''''''','',',','''''','''',''''''''',''''''''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>;>>>>>;>>>>;>>>>>;>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>>>>>>>>>,>>,>,>,>,>>>>>,>,>>,>>>,>>,>>,>>,>,>,>>,>>,>,>>,,>,>>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,,>,,,>,,>,,>,,,,>,>,,,>,,,>,>,,>,>,,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,',',,,,',,',,,,,,,,,,,',,,','',,',,',,,,',',',,',',,,',,',',,',,',',',,',',',',',',,','',','','',','''',''',','''',','''',',,',',',''''''''','','''','''',''',''''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>,>>,>,>>>,>>>>>>>>,>>,>>>>,>>>,>>,>>>,>>,>>>,>>>,>,>>>,,>>>,>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,>,>,>,,>,,>,,>>,>,,,>,>,,>,,>,,,,,,,>,>,>,>,,,>,,>,>,,>,,,>,>,,,,>,,>,,,,>,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,',,,,',,,',,,,,,,,,,',,,,,,',,,,,,,,,,,,,',',',',',,,,',,,,,',,',,',',,',,,',,',,',',',,',','',',','',',',',',','',','',',',','',',,'',,'',',','''',','''''''''''',',',','''''','''''''''''''''''',''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>>>>>>;>>>>;>>>>>>;>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>,>>,>>>>,>>,>>>,>>>>>>>>>>>>>,>>>,>,>,>>>,>>>,>>>,>>>,>>,>,>,>,>,>>,,>>>,,,>>,>,>,>,>,>,>,>,>,>,>,>,>,,,,>,>,,>,,>,,,>,>,>,,>,,,>,,>,,,,>,,>,,>,>,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,',,',',',,,,,,,,,,,,,',',,,',',,',,',,,',,',',',',',',,,'',',',,,,',',,',',',',',','',',','',',',''','',''',''','',',''',',',',',','''''''''',','''','',','',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>;>>;>>>>>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>,>,>>,>>>>,>>>>>>,>>>,>>,>,>,>,>>>,>>>,>>>,>,>>>,,>>>,>,>,>,>>>,>,>,>,>,>,>,>,>,>>,>,,>,>,>>,>>,,>,,>,>,>,>,>,,>,>,,>,,,>,,,,,,>,>,>,>,,,,>,,>,,>,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,,,,',,',',',',,,,',',,,',,,',,',,',',,',,,',,,'',,,',,,'',',','',',',',',',','',',',','',',,'','',,'',,'','','',','','''''''',',',','''''',''''''''''''''''''','''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>;>>;>>>>;>>>>>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>,>>>>,>,>>>,>>>,>>>,>>>,>,>>,>>,>,>,>>,,>>>,,>>,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,,,>,,>,,>,,,>,,>,,,>,,,>,,>,>,,,>,>,,,,,,,,,>,,,,,,,,,,,,,,,,,>,,,,>,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,',,,,,,',,',,,',',,,,,,,,,,,',,,,,',,,,',,,',,',',,',,',',',',,'',',',,',',,',',',',',',',',,',',','',',''','',''',''','','','''','',',',',''''''''','''''','','''''',''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>>>>>>;>>;>>>>>>>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>,>>>,>>,>>>>>,>>,>>>,>,>>>>,>>>>,>>>,>>,>,>>>>,>,>>,>>>,>>>>,>>,>,>,,>>,>,>>,>,>,>,>,>,>,>,,>,>,>,>,,>>,>,,>,>,>>,,>,,>,>,,>,,>,,,,,>,,,,>,>,>,>,,,>,,>,>,,>,,>,,>,,,,>,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,',,,,,,,,,',,,,,,',,,,,,,',',',',,,',',,,'',',,',,',,',,',,',,,',,',',,',','',,',',',',',',',',','',''',',,',',',','',',',','''','',','','''''''''',',','''','',''''',',''''''''''',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>;>>>>>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>,>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>,>,>>,>>,>>>>>,>,>>>>,>>,,>>,,>,>,>,>,>>>,>,>,>,>>,>,>,>,>,>,>>,>,,>,,>>,,>,,>,,,>,,,>,>,>,,,>,>,,,>,>>,,>,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,',,,,',',,,,',,,',,,,,,,,',,,,,',,,,,,',,',,,,',',',',',,',,',',',',,',',,',',',',',',','',',',','''',''','',',','','',''','''','',',',',',''''''',''''''','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>>>>>>;>>>>>>;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>,>>>>>>>>,>>>>>,>>,>,>,>,>>>,>>>>>>>>,>>>,>,>>,>>,>,>,>>,>,>>>>,>>,>>,,>,>>,>,>,,>,>,>,>,>,>,,>,>,,>>,,>,>,>,>,>,,>,,>,,>,>,,,,>,>,,,,>,,,,,,>,>,>,,,>,>,,>,,>,>,>,,,>,,,,,>,,>,,,,,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,',,,,,,,,,,',,,,',',',,,,',',,',',',,',,',',,,',,',,',',,',',',,',',','',',',',',',',','',',',',,,',',',',''','','','','',',''''''''''''''',',''''',',''''',''','''''','''''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>;>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>,>>>,>,>>>>>>>>>>>>,>>,>,>,>,>>,>,>>>,>>,>,>,>>,>>>,>,,>>,>,>,>>,>,>,>>,>,>,>,>,>,>,>,>,,>>,,,>,>,>,,,>,,>,>,,>,,,,>,>,,>,,>,>,,>,>,>,,,,,,>,,,,,,,,,,,,,,,,>,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,',',,,,',,,,,,,',',,,,',,,',,',,',,,',',,',,',,',',',,,',',,',',,',',',',',',',',,',',''''','',''',',',','','','',''',',,',',',',',''''','',''''',''''''''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>>>>>;>>>>;>>>>>>>>>;>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>,>>,>,>,>>,>>>>>>>>,>>>,>,>>,>>>>>>,>>,>,>>>,>,>,>,>,>,>>,>,,>>,>,>,>,>,>,>,>,>,,>>,,>,>,>>,,>,,>,>,,>>,>,,,>,,,>,,,,,,,,,,,>,>,,,>,,,>,,>,>,,,>,,,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,,,,,,',,,,,,',,,,',',',,,,',',,,',,',,',,,',,',',',',',,,,',',',','',,',',',',',',',',''','',',,,',','',','',''',',','',''',''''''''''''''',','''''''',''''',','''''','',''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>,>>>>>>,>>,>>,>>,>>>>>>>>>>>>,>,>,>,>>,>>>>,>>>,>,,,>>,>,>,>,>>,>>,>,>>,>,>,>>,,>,>,>,>,>,>,>,,>,>,,>>,,,>,,,>,>,>,,>,>,,,,>,,>,>,,>,>,>,>,>,,,,,>,,,,>,,,,,,,,>,,,,,,,,,>,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,',,',,',,',,,,,',,,,,,',,,,,,,,',,,,,',',,,',,,',',',,,',,,',,''',,',',,',,,',',',',',',',',',,',',',''',','',','','',,''''',''',,'',',',',',',',''''','','''''',','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>>>>;>>>>>>>>>>;>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>,>>>>>>>>>>>,>,>,>,>>>>>>>>>>,>,>,>>,>,>>>>,>,>>>,>>>,>,>,>>,>,>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,,>>,,>,>,,,>,,>,,,>,>,,>,,,,>,,>,,,,,,,,>,>,,,>,,,,,>,,>,,,,,>,,>,,,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,',,,',,',,,',',',',,,',',,,,,',,',',,,,,'',,'',,',,,,'',',',,'',',,',',',',',',',','',',',','',','',','',''',,','',''','','''''''''''',',''''','','''''''','''''''''',''',''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>>>>;>>>>>>>>>>>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>,>>>>>>>>>,>>,>>,>>>>>>>>>,>,>,>,>,>>>>>,>>>>,>,>>>>,>,>>,,>>>,>,>,>>,>,>>,>,,>,>,>,>,>,>,>,>,>,,>,>,,>>,,>,>,>,>,>,>,,,>,,>,>,,,>,,>,>,>,>,,,,>,,,>,,>,,,,,,>,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,,,,',,',,',',,,,,,,,,,',,,,,,,,',,,,,','',,',,,',',',,,',,,',',',',,',,'',,',',',',',',',','','',',''',',','','','',',',''''',',','','',',',',',',''''','''''''','''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>;>>>>>;>>;>>;>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>,>>,>>>>>>,>>,>>>,>>>>>>,>,>,>,>>>>>>>>>>>,>,>>,>,>>>,>,,>>,>,>>>,>,>,>,>,>>,>,,>,>>,>,>,>,>,>,>,,,>,>,>,>,>,,,>,,>,,,,>,,>,>,,>,,>,,>,,>,,,,,,,,,,>,,,>,,,,,,,,>,,,,>,,,,,,,,>,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,',,',,,,,,,,,,,,',,',,',,,,,',',',,,',',,,,,',,,',,',,,'',,',',,,',,',',',,',',',',',',',',',',,',,',',,'',',',',','','','',,','''''',''','''''''''''',','','',',''',','''''',''','''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>;>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>>>>>>>>,>,>,>,>,>,>>>,>>>,>,>>>>,>,>>,>,>,>,>>>,>,,>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>>,,>,,>>,>,>,,,>,,,>,,>,>,,,>,>,>,>,>,,,>,,,>,>,,>,,,>,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',',,,,,,,',,,,',',,,',',,,,'',,,',',,'',,',,',,'',,',,',',',',',',','',''',''',,','','','',',''','''',',',''','',',',',',',''''''''''''''''''''',','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>,>>>>>,>>,>>,>,>,>>,>>>>>>,>,>,>,>>>>>>>>,>>>,>,>>,>>,>>,,>>,>>,>,>>>,>,,>,>>>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,,>,,>,,>,,,>,,,>>,,,>,,>,,,,,>,,,,,,,,,,,>,,>,,,,,,,,,,,,,>,,,,,>,,,,>,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,',,,,,',,,',',',,,,,,',',',,',,',,,',',,,',',,,,',,',',,,',',',',,,',',',,,',',',',',',,',',',',''',','','',''',,'',','',''',',',''''''''''''',','','','','','','''''''''',''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>;>>>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>,>,>,>>,>>,>>,>>,>>,>>>,>>,>>>,>,>,>>,>>,,>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>>,>,,>>,>,>,,>>,,,>,>,,,,>,>,>,>,>,>,>,>,,,,,,,,>,,>,,>,,>,,,>,,,,,>,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,',,,,',,,,,,,',',,,,,,,,,,',,',,',,',,',,',',',',,',',,',,','',',',,''',',',',',','',',',',',',',',',',',',''',','','','','''',',',',',','''''''''''''','''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>;>>>;>>>>>>>>>>>>>;>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>,>>,>>>,>,>,>,>,>>>>>>>>>,>>,>>,>>,>>>,>>,>,>,>,>,>>>,>>,>,,>>,,>,>,>,>,>,>,>,>,>,,>,>,>,,>,,,>,>,,,,,>,>,,,>,>,,,>,>,,>,,,,,,,,,,,,,,>,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,',,,,,,',',',',,,',,',,',,',,',,',',,,,',',,',',,',,',,',',,,',',',',',',,',',','',','',''',''',',',''','','','',','''''''''''',',',','',',''''','''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>;>>;>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>,>>>,>>,>>>,>>>>>>>>>>>>>>>>>,>,>,>,>>>,>>>>>,>>,>>,>,>>>,>>,>,>,>,>,>>>,>,>,>>,>,>,>,>,>,>,>,>,>,,,>,>,>,>,,>,>,>,,,>,>,,,,>,,>,,>,,>,>,>,>,>,>,>,,,,,,>,,>,,>,>,,,,,,,>,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,',,,,,,,,,,',,,,',,',,,,',',,,,,,,,,',,,',,',,',,',,',,,','',,,',',,'',',',',',',',',',',',','',''','',',',',',',',','',',','','','''''',',',',',','''''''''''''''',''''','''''''''''''''','''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>;>>;>>>>>>>>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>>>,>,>,>>>>>>>>>,>,>>,>,>>,>>,>>,>,>,>>,>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>>,,>,>,>,,>,,>,,>,,>,,,,,,,,,,,,>,>,,,,,,,,,,,,>,>,,,,,>,,>,,,,,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,,,,',,,,,,,',,,,,,',',',',,,',,',,,,,',,',,,',',,,',',,,',,,',',',',',',',',',',',',,',',',','',',',''',','','','',''''',,',','''''''''''',',','',','','''','''',''''','''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>;>>>;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>,>>,>>>>>>,>>>>>>>,>,>,>,>>>>>,>>,>>>,>>>,>>>,>>,>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,>>,>,,,>,,,,,>,,,>,,>,,>,,>,,>,,>,>,>,>,>,,,,,,,>,>,,>,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,',',,,,,',',,,,,,,,,,',,',,',',,',,,'',',,'',,','','',',,',',,,',',',',',',','',',',',',,',','','','','','','',',''''','',',',',',',''''''''''''''','''''''''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>;>>>>;>>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>,>>,>>>>>>>,>>,>>>,>,>,>>>>>>>>>,>,>>,>>,>>,>,>>,,>>,>,>,>,>>,>>,>>,>,,>>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,,>,>,,>,>>,,>>,,>,,>,,>,,,>,,,,,,,,,,,,>,>,>,,,,,>,,,,,,>,,,>,>,,,,,,,>,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,,,,,',,,,,',',,,,,',',',',',,',,,',,,',,,',,,,,',,,',',,,,,',',',,,''',,',',',',',',',',',',','','',',','',',','','','',',',''',''''''''''''',','','',','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>>>>>>>>>>>>>>,>,>,>,>>,>>,>>,>>,>>>,>,>>,>,>>>,>>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,>,,>,,>,>>,>,>,,>,>,,>,,>,,,>,,>,,>,,>,,,>,>,>,>,>,,,,,,,,>,,,,,,,>,,,,,>,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,',,',,,,',,,,',,,,,,,',,,,,,,,,,,,,,,',,,',,,',',','',,',,',,','',,,',',',,,',',',',',',',','',''','',',','','',''','',',''','''',',''',',',',',','''''''''''''','','''','','','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>>>>>;>>>>>>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>,>>>>>,>>,>>>>>>>>,>>,>>,>,>,>,>>>>>>>>>>>>,>>,>>,>>,>,>>>>,>>>,,>>,>>,>,>,>>,>,,>,>,>,>,>,>,>,>,>,>,>>,,>,,>,>,>,,>,>,,>,,>>,,>,,>,,,>,,>,>,,,,,,,,,>,>,>,,,>,,>,>,,,,>,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,',,,,',,,',',',',',',',,',',',',,,',,,',',',,',',,,',',',',',',',',',',',',',,',',,',',','',',',',',',','',','',','','',''''''''''''','','',''','''''''''''''''''',''''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>>>>;>>>>;>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>,>,>>>>>>>>,>>>>>>>>,>,>,>,>,>,>>,>>,>>,>>>>,,,>>,,>>>,>,>>,>,>>,>,>>,>>,>,>,>,>,>,>,>,>,,,>>,>,,>,>,,>,,,>,,>,>,,>,,>,,>,,,>,,,,>,>,>,>,,,,,,,>,,,,,,,,,>,,,,,,,,,>,,,,,,,,>,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,',,',,,,,,,',,',,,,,',,,,',,,,,,,,,,,,,,',,,',,,',,,,',,',,,',,',,'',',',,',',',,',',',',',','',','',',',',','',''',',''','''','''',''',',',',',',',','''''''','''',''''',''''''''''''',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>>;>>>>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>,>>,>,>>>>>>>,>,>>>>>>,>>>>>,>>>>>,>>,>,>>>>,>>>,>,>>,>,>>>,,>,>,>,>,>,>,>,>,>,>,>,>,>>,,,>,>,,>,>,>,>,>,>,,,>,,>,,,,>,>,,>,>,,,,,,>,,>,>,>,,,,,>,,>,,,,,>,,,>,,,,,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,',,,,,,',,,,',,,,',,,,',',',',',',',,',,,',,',',,',,'',',',',,,',,',',',',',',',',',',',',',','','','',',',','''',',',','',',''',''''''''''''''''',',',''''',''','''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>>>>,>>,>>>>>,>,>>>>>,>,>>,>,>>>,>>>,>,>>,>,>>,>,>>,>,,>>,>>>,>>,>,>,>,>,>,>,>,>,,,>>,>,,>>,>,,,>,>,,,>,>,,>,,>,>,,,>,,>,,>,>,,,,>,,,,,,,>,,,,,,,,>,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,,,,,',,,',,,,',,,,,,,,,,,,,,',,',',,',,,',',',,,,',,,',','',,',,',,',',',',',',',','','',',',',','''',',,'',','',','',','',',',',',',',',',''''''',''''',''','''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>>>>>>>;>>>>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>>,>>>>>>,>,>>>>>,>,>,>>>>,>>,>,>>>,>>,>,>,>>,>>,>,>>,>>>,>,,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,,>,>>,,,,>>,,>,>,,>,>,,,>,,>,,>,,,,,>,,,>,>,>,,,>,,>,>,,,,>,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,',,',,,',,,,,',,',',',',',',',,,',,,',,',',,,',,'',,',',,',,',',',',',',',',',',',',,',',,'','',',',,',''',',''','''','''','',''''''''''''''''''',''',','''''''','''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>;>>;>>>>;>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>,>>>>,>>>,>>>,>>>,>>,>>>>>>>>>>>,>>>,>,>>>>>,>,>>>>>>>>,>>>,>>>>,>,>>,>>,>>,>>,>>>,,>,,,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,,>>,>,,>,>,,>,,,,>,>,,,>,,,>,>,,,>,,,,,,,>,,,,,,,,,>,,,,>,,,,,>,,,>,,>,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,,,,,,,',,',,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',',,',,',,,,'',,',,,',',',',',',',',',',',',',',',','',',''',,',','',''',',''',',',',''',','','',',',',',',',',','''''''''','''''''',''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>,>>>>>>,>,>,>,>,>,>>,>,>>>,>>>,>>,>,>>,,>>,>>>>,>>,>>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,,,>,,>,,>,,>,>,,,,>,,,>,,,,,>,,,>,>,>,,,,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,',,,,,,,,,,,',,',,',,,',',',',',',',',',',,,',,',,',',,,',,'',,',,,',',,,',',,,',,',',',',',',',',',,,'','',','',','',,'',',''',',''','','''''''''''''''''','','','''',','''''''','','','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>,>>>>>>>,>,>>>>,>>,>,>,>>>>>>>>>>>>,>>>,>,>>,,>>,>,>>,>>>>,>,,>,>,>,,,>,>,>,>,>,>,>,>,>,,,>,>>,,>,>,,>,,>>,>,>,,>,>,,>,,>,>,>,>,,>,>,,,>,,,,,,,,>,>,,,,,,>,,,,,,,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,',,,',,,',',,',,,',,'',,,''',,,''',',',',',',',',','','''',',','',',''',''',''',','''','',''',',',',',',',',''''''''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>,>>,>>>>>>>>,>,>>>>>>,>>>,>>>>>>>>,>,>,>,,>,>>,>>>>,>>,>,>>,>,>>,,>>,>>>,>,>>>>>>,>,>,>,>,>,>,>,>>>,,,>,>,,>,>,>,,,,,>,,>,,,>,,>,,>,,,,,>,,,,,>,,,>,>,>,,,,,,,,>,,,,,,,>,,>,,>,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,,,,,,',,,',,,,,',,,,,',,',,',,,',,',',',',',,,,,',,',,,',,,',,',',,',',',,,'',,,,'',,,,',',',',',',',',',',',,'',',',,''',,'',,'',',''',','','',','''''''''''''''''','',','''''''''','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>,>>>,>,>,>,>>>>>,>>>>>,>>,>,>>,>>>,>>>>,>,>>,>,>,>,>,>,,,,>,>,>,>,>,>,>,>,,,,>>,>,>,>,,>,,>>>,>,>,,>,>,,,,>,,>,>,,>,,>,,,>,,,,,,,>,,>,,>,,,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',',,,,,',,,',,,,,,,,,,,,,',',,',,,',',',,',,',,',',,,',',,'',',,'',',',',',',',',',',',','',,','','',,''',''',','','''',''','''',',',',',',','',''''''''','',''''''''''','''''''',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>>>>;>>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>,>>>>>,>>>>,>>>>,>>>>>>>>>,>,>>>,>,>,>>,>>>,>>,>,>,,>,>,>>,>>,>,>>,>,>>>>>,>,>,>,>,>,>,>,>>,,,>,>,>,>,,>,,,,,,,>,>,,,>,>,,>,>,,>,,,>,,>,,,>,>,>,,,,,,,,>,,,,,>,,,>,,,,,,>,,,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,',,,,,,,,,,,',,,,,,,,',',',',',',,,,,',',',,,,,',,',',',,,'',',,',,',',',,',,,',',',',',',',',',',''',','',''',','',,''','',,'',','',','''''''''''''','',',''','''''',''''''','''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>,>>>>>,>>>>,>>>>,>,>,>>>>>>,>>>>,>>,>>,>>>,>,>>>>>,>>>,>,,>,>,,>,>,>,,,>,>,>,>,>,>,>,,>,,>>,>,>,>,>,>,>,>,>>,,>,>,,,>,,,,,,>,,>,,,>,,,>,,,,,,,>,>,,,,,,>,,,,,>,,,>,,>,,,,>,,,,,,,>,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,,,,,,,,',,,,',,',,,,,,,,,,,,,,',',,,,,,',',',,',,,,,',',,,,',,'',,',',',',',',',',',',',',''',',,,',',,',','',',''',,'',''',''','''',',',',',',','''''''','''','''''',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>,>>>>>>,>,>,>>,>,>>,>>,>>,>,>>,>,,>,>,>,>>>,>>,>>>>,>,>>,>,>,>,>,>,>,>,>,>>,,>,,,>,,>,,>,,>,,,>,,,>,>,,>,>,>,,>,,,>,,,>,,>,,>,>,,,,>,,>,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',,',,,,',,,,,,,',,',',',',',,,,',',--*-->,,',,'',',,','',,',,',',',',',',',',',',',',',',',''''''',''','',','',,''','',','','',','''''''''''''','','''''',''',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>>>;>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>,>>>>>>,>>,>>,>>>,>>>>,>>>>,>,>>>>>>>>>>,>>,>>,>>,>>>,>>,>>>,>>,>>,>,>,>,>,,>,>>,>,>,>,>,>,>,>,>,>,,,>,>,>,>,>,>,,>,,>>,,>>,,,>,,,,>,,>,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;**-,,',,,,,,,,',,,,',',,,,,,,,,,,,,,,',',,,=*&&&&&&-,,',,>=*-,,,,',',',',',,,',',',',',',',',',',',',',,',,',',,','''',''',,'','''','',''',',',',',',',''',''',','''''''',''''''',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>;>>>;>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>,>,>>>>,>,>,>,>,>>,>>>>>,>>,>,>,>>>,>>,>,>,>>>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,>>,,>,>,>,>,,>,>,>,,>,>,,,>,,>,>,,>,,,>,,>,,,>,>,,,>,>,>,,,>,,>,,>,,,,,>,,>,,,>,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,;&&&&;,,',,,,,,,,,',,,,,,,',',',',',',,,,,,>*%&&&%&&&>,',,,*&&&-',',,,',,,','',,',,,',',',',',',',',',','','',','''',,,'',,''','',',''','','''''''''''''',''''''''''','',''''',''''''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>,>>,>>,>>>>>>>>>>>,>,>>>>>>>>>,>>>,>,>>>,>>>,>>,,>,>,>>,>>,,>,>>>,>,>,>,>,>,>,>,>,>,>,,,>,,>>,>,,>,,>,,>,>,,>,,,>,>,,>,,,>,,,>,,>,,,>,,,,,>,,,,,,,>,,,,,,,,,,,,>,,,,,,>,,,,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,*&&&&*,,,,',,',,,,,,',,',,,,,,,,,,,,,',',',&&&&%*&*&*,,','-&&&&&',,'',,'',',,'',',',',',',',',',',',',',,','',',',,'''',''',,'',''',','','',',',',',','''','',',''','''''''''''',''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>>,>>,>>>,>>>>>>,>>,>>>,>>>>>>,>,>,>,>>>,>>,>,>,>>,>>,>>>,>>>,>,>,>>,>,,,>,>,>,>>,>,>,>,>,>,>>,>,>,,,>,>,>,>,>,,,,>,>,>,,>,,>,,>,,>>,,>,,,>,,,>,>,,,>,>,,,,,,>,>,,>,>,,,,,,,,,,,,,,>,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*%&&&*,,,,,,,,',,',,,,,,',,',',',',',,,,,,=&&&&=,,,,,',,,,-&&&&*,',,',',,',,',,,',',',',',',',',','','''',','',',''',','',''','',','''','',''''''''''',',''''''','''','','',''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>;>>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>>,>>>,>>,>,>,>>>>>>>>,>,>,>>>>>>,>>,>>,>>,>,>>>,>,>>,>>>>,>,>>,,>,>,>,>,>,>,,>,>,,>>,>,>,>,>,,>>,,>,,,>>,,>,,>,>,,,,>,,>,,,>,,,,,>,,,,,,>,,>,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',>&&&&;,,,,,,',,,,,,',,,,,,,,,,,,,,,,',','>*&&&=,,',,,,'',,,&&&&-,,',,',',',','',',',,',',',',',',',',',,',',,','',','',',',','''''',','','',',',',',''''',','''''',''','''''',''','''',''','''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>>,>,>,>,>>>>>,>,>,>>,>,>,>,>,>>,,>>>,>,>,,>,>>,>,>>,>,>,>,>,>,>>,>,>>,,,,>,,,>,>,,,>,>,>,,,>,,>,,,,>,>,,>,,,>,,,>,>,,,,>,>,,,,,,,,>,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,>*=;,',,',,,,',',,,,',,',',',',',',,,,,,-&%&*,',,',',,,',',=*;,',,',',,',',,,',,','',',',',',',',',','''',''',','',',''',''',',',','',''',''''''''',',''''','',''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>>>,>,>>,>,>>>,>>>,>>,>>,>,>,>>>>>>>>>>,>,>>>>,>>,>>>,>>>,>>,>>>,,>>,>>>,>,,>,>,>,>,>,>,>,>,>,,,>,,,>>>,>,>,>,,>>,,,,>,>,>,>,,>,>,,,,>,,>,,,>,,,,,>,>,,,,,,>,,>,,,>,,,,>,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',',,,*&&&-,,',,,',',',',',,,',',,',',,'',',',',,',',',',',',',','',,,',',','','',',,'',,'',''''','','',',',','''''',''''''''','',''','',''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>>;>>>>>>>>>>>;>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>>>>,>,>,>,>,>>,>>,,>>>,>>,>>,,>>,>>,,>>>,,>,>,>>>,>>,>,>,>,>,>,>,>,>,>,>>>,,,>,>,>,>,,,>>,>,,>,,,,,>,,,>,>,,,>,,>,,,>,>,,,,,>,,>,,,,,>,,,,,,,,,,>,,,,,,,,>,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,',,,,,',,,',,,,',',,,',',',',,,,,','&&&&>,',,',,,,',,',,',',,',',',',,,',',','',',',',',','','',,''',',','',',''''',''',''',',''',','''''''',',','',''','',''''','''''''''''''''''''',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>,>>,>>,>>>>,>,>>>>>>>>>>>,>>,>>>,>,>>,>,>>>,>,>>>>,,>>>,>,>,,>>,>,>,>,>,>,>,>,>,>,>,,,,>>,>,>,,,>,>,,,>,>,,>>,>,,>,,,>,>,,>,,,>,,,,,>,>,,,,,,,>,,,,,>,>,,,,,,,,,,,>,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,',,,,',,,,,',,,',,,,,,',,,,,,,,',',,,,'&&&&>,,',,',',,',,',',,',,,',','',',,',,',,',',',',',',',','',,',','',''',',,',',',',','',','''',',','''''''',''','''''','''''','''',''''',''','''''''''=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>,>>>>>>,>>>>,>>>>>,>,>,>,>,>>,>>,>,>>>>>,>>,>,>>,>,,>>,>,,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>==-=;>,>,>,,>,>,>->,>,,,,,>,,>;-==->-===>,>,>,,,,>,>;-,,,,,>,,,,,,-=-=;;===-,>,,,,,,,,,,->,,,,,,,,,,,,----,,,,,,,,,,,,',,,,,,,>>>>;>>>,,,,,',>>>>>,,>=****=>',',',,,,'>>>>&&&&->>>>,,','>>>>>>>>,,',',,,>>>>',',;=***=;,',',',',>-****=;,,'',',',,','','',''',''','''',','',-****=->','''''''','>>>>'','>=***=-'','''',;=***=->''*&*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>,>>>,>>>>>>>,>>,>,>>>>>>>>>>>,>>>>>>>,>,>>,>>,>,>>,>>>,>>,>>,>,>,>,>>,>,>,>,>,>,>,>,>,,>,>,*&&%&,,>,,>,,,>,*&;,,>,>>,,>,,*%&&=,&&&&*,,,,>,,,,,,&&,>,,,,,>,,,>&&&&;;&&&&-,,,>,,,,,,>&*,,,,,,,,,,,-&%&&,,,,,,,,,',,,,,,,,,,&&&&&&&&',,,,,,*&&&*,*&&&&&&&&&-,,,,',,,*&&&&&&&&&&&&-,,,'*&&&&&&&>,',','-&&&&',;*&&&&&&>,',',',;*&&&&&&&&&*>,'','''','','',','',''',',''',>=&&&&&&&&&*>,'','',''>&&&&>'>=&&&&&&-''''''=*&&&&&&&&==&&&*,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>;>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>>>>>>>,>,>,>,>,>>>,,>,>,>>>,>,>,>>,>,>>,>,>,>,,>,>>,>,>,>>,>,>,>,>,>,>,>,>,,>,=%&&&>>,>,,>>,>>&&*,>,,,,>,,>;&&%&;,*&%&&,>,,,>,>,,-&&-,>,>,,,>,,-&%&&,,&&%&*,,,,,>,,,,*&&>,>,,,,,,,,*&&&*,,,,,',,,,,,,,,,,,,'&&&&%&&*,,,',,,*&&&&*&&&%&&&&&&&*>',,,',*&&&&%&&&&&&&-'',,*&&&&&&&>,,',',-&&&*,;&&&&&&&*'',',',=&&&&&&&&&&&&&=','',','',','',''',',',''','-&&&&&&&&&&&&&='''''''',&&&&>>*&&&&&&*,''''>*&&&&&&&&&&&&&&*;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>,>>,>>>>,>>>,>,>,>,>>>>>>>>>>,>>>>>,>>,>>>>,>>,>>>,>,>>>,>>>,>>,>,>,>,>,,>,>,>,>,>,>,>,>,>,,>&&%%=,,>>,,,,>=&&&,>,>,,,>,,=%&&&,,-&&&&;,>,,,,,,,*%&*,,,,,,,,,,*&&&=,,=&&&&,,,,,,,,,,&&&=,,,,,,,,,,&&&&;,,,,,,,,,,,,,,,,',,,*&%&&&%*,,,,,,,*%&&&%&&*&&&&&&&&&&,,',,,*&&&&&&&%&&&&=,,',*&&&&&&&>',',',-&&&&;&&&&*&&&;,',','*&&&&&&*&*&&&&&&=',','',''',',','''','',','=&&&&&*****&&&&&=','',''>&&&&>*&&&***&-','',*&&&&&*=**&&&&&*,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>,>>,>>>>>>>>,>>>,>>>>>>>>>>>>>,>,>,>,>,>,>,>,>>,>,>,,>>,>>,,>>,>,>,>,>,>,>,>>,>>,>>,>,>,>,>,>,>,,>,>,>>,&&&&&>,,,,>>,,&&%&=,,,,>,,,,&&%&=,>,&&%&*,,>,>,>,;&&%&;>,,>,,>,>&&%&;,,;&%&&->,,,,,,,-&&&&,,,,,,,,,;&%&&,,,,,,,,,,,,,,,,,,,,,=--*&&&&,,,,',,*&&&&&*;,',,-*&&&&&*,,',,--=-&&&&*-=-->',,'-=-=&&&&>,',',,-&&&*&&&=,,'>*,',','*&&&&*;,,',>=&&&&&='',',',,',''',',',''''''-&&&&*-,',',-*&&&&;'''',',&&&&*&&=,'',=>''''=&&&&=>''',-&&&&*,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>;>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>,>>>>,>>>,>>,>>,>,>>>>>>>>>>>>>>>,>>,>>>>>>>,>,>>>>,>>>,>,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,>,,>,,,>-%&%&>>>,>,,>-&%&&&,>>,,>,>>&&&&>,,,*&&&&,,,,,,,,=&&&&*,,,,,,,,-&&&&,,>,&&&&*,,,,,,,,*%&&&-,,,,,,,,*&&&=,,,,,,,,,,,',,,,,,,,,,,,-&&&*,,',,,,*&%&&;,,,,,',,-&&&&&;,,,,,,,'&&&&-,,,,,,',,',,>&&&&>,',,',-&&&&&&;,',',',',',=&&&&=,'',''''>*&&&*,','''''',',''','',',,',*&&&*>','''',>*&&&*,,''''>&&&&&&-'''''''''';&&&&*'''''''-&&&&-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>,>,>,>,>,,>,>>,>>,>,>,>,>>,>,,>>,,>>,>,>>>,>>,>>,>,>>,>,>,>,>,>,>,,>,>,>>,,>*%&&=,,>,,>,*&&&%&;,,,>,,,*&%&*,>,>;&%&&;>,>,>,,&%&%&&,,>,>,,,&&%&=,,,,=%&%*>,,,>,,;&&&%&*,,,,,,,>&&%&;,,,,,,,,,,,,',,,,,',,,,,=&&%*,,,',,,*&&&*',,',,,,,'-&&&&*,,'',','&&&&-',',',',',,';&&&&>,,'',,-&&&&&-,',',',',',,*&&&=',',',,',,>*&&&='',,',,'','',''','''',=&&&&-'''','''';&&&&-'','',&&&&&=','''''',''=&&&*,''''''''*&&&*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>;>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>>,>>,>,>>,>,>>,>>>>,>>>>>>>>>>>>>>>,>>>,>>>,>>,>,>>,>>,>>>,>>>,,,>>,>,,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,*&%&&,,>,>,>&%&%&&*>,,>,>,&&&%-,,,,>&&%&=,,,,,,-&&&&&&=,,,,,,>&&&&;,,,,>&&&&-,,,,,,*&%&&%&;,,,,,,-&&&&,,,,,',,,',,,,,,,',,,,',,-&&&&,,,,,,,*&&&*,,,,',',,',*&&&&>,,,,',,*&%&-,,,,',,,',',>&&&&>',,'',-&&&&*',',',',',',=&&&&','','','','=&&&*,''','','','',''',',''*&&&*',','','','*&&&*'''',,&&&&*,''','',''''*&&&='''''''''-&&&&,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>>,>,>,>,>,>,>,>>,>,>>,>>,>>>>,>>,>>,,>>,>,>>>,>,>>,>>,>,>,>,>,>,>,>,>,>,,>,>,>,>-&&%&;,>,,>=&&&&%&&>>,,>,;&%&&>,>,,,=&&&&>,>,>,*%&%&%&&,,,>,,=&%&&,,,,,,&&%&*,,,,,,&&&&&&&*,,,,,,*&&&=,,,,,,,,,,,,,,,,,,,,,,,,,-%&&*,,,',,,*&%&*,,',,,,',,,;&%&&-',',,',&&&&-',',,',',,,';&&&&>,',,',-&%&&;,',',',',','&&&&-,',,',',',',>&&&&,,','',','','',',''',;&&&&;''''''','',-&&&&,,'''>&&&&='''''''''','*&&&-'''''''''>*&&&,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>,>>>,>,>>,>,>>>>,>>>>>>>>>>>>>>,>>>>>,>>,>>,,,>>,>>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,>&&&%=,,>,>&&%&*&&&=,,,,>*&&&*,,,>,>;%&%&;,,,,>&&&&*&&&;>,,,>&&&&=,,,,,,=&&&&,,,,,-&%&&&&&&,,,,,>&&%&;,,,,,,,,,,,,,,,,,,,',,,,,-&&&&',,,',,*&&&*,,,,',,,,',,*&&&*,,',,,'*&&&=,,'',',,'',,>&&&&>,',',,-&&&&,,',',',',',>&&&&>''','',',',',*&&&>',',''',''','''','''=&&&*,',',','''''>&&&&;'',',&&&&>''''''''''''*&&&;'''''''''>&&&*>''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>,>>,>>>,>>>>,>>>>>>>>>>,>,>>,>,>,>,>,>,>,>>>,>,>>,>>,>>>>,>,>,>,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,*%&&&,>,,-&%&*,&%&&>,>,,&%&%-,>,,,,,&&&&=>,>,*&%&--&%&*,,,,>&&&&>,>,,,,>&%&&-,,,,*&&&>=%&&-,,,,-&&&*,,',,,,,,,,,,,',,,,,,',,,,-%&&&,',,,,,*%&&*,,',,',',,,,*&&%*,,,',,,*%&&-',,,,,',,,',>%&&&>',,','-&&&*,',',',',','-&&&*--------------&&&&-''',','',','',','','*&&&*,''''''',',',*&&&-'''',&&&&>',','','''''*&&&-''''''''',&&&&,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">;>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>>>>>>,>,>,>>,>>,>>,>,>>,>>,>>,>>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,,,>,>,>,,>>,>,;&%&&>>,,*&&%-,=&&&-,,,-&&&&,,,>,,,,=&%&&,,,,&&%&>,*%&&>,,,*&%&*,,,,>,,>*&&%*,,,;%&%*,>*&%&,,,,*&%&=,,,,,',,,,,,,,,,,',,,,,,',-&&&*,,,,,,,*&&&*,,,,,,,,',,,*%&&*,',,',,*&&&-,','',,'',,'>&&&&>,',',,-&&&*,',',',',','=&&&&&&&&&&&&&&&&&&&&&&-',''','','',','','',*&&&*',',','''''''*&&&*',''>&&&&>'''''''','''*&&&*''','''''-&&&&,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>;>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>,>>>>,>>>,>>,>>>>>>>,>>,>>,>,>,>,>,>,>,>,>>>>>,>>,>>>,>,>>,>>,>>,>>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,&&%&=,>>&%&&,,;%&%*>>,*&%&*>,,,>,>,;&&&&;,,-&&&=,,-&&&=,,,&&&&-,,,,,,,,=&&&&,,,=&&&-,,*&&&;,,>&&&&>,,,,,,,,,,,,,,,,,,,,,,,,,,=&&&&,',',,,*&%&*',',',',,',,*&&%*,,',,,,&&&&-,',,,',,,',,>&&&&>',',',-&&&&',',',',',',*&&&&&&&&&&&&&&&&&&&&&&>,',',','','''','',''*&&&*''''''','',',*&&&*'',',&&&&>''''''''''''=&&&*,''''''''=&*&*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>>>>,>>>>>>>>>>,>>,>>>,>>>>,>>>>>>>>>>>>>>,>,>>,>>>,>>,>>,>,>,>,>>,>,,>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,>,,>,>>,>,,>=&%&&,,*&&&=>,,*&&&;,>&&&&-,>,,,,,,>&&%&=,,&&%&;,>,&&%*>,;&&%&>,,,,,,,,>&&&&;,>&&%*,,,;&&&*,,=&%&*,,,,,,,,',,,,,,,,,,,',,',,,-&%&*,,,,',,*&&&*,,,,,,,,,,',*&&&*,,,',',*%&&-,,'',,'',,',>&&&&>,,',',-&&&*,',',',',','*&&&&******************,'','''','',','','',,*&&&*',','''',''''*&&&*''''>&&*&,''','''''',';&&&&=''''''';&&&&-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>,>>>>,>,>,>,>,>,>,>>>,>>>,>>,>>,>>,>>>>,>,>>>>,>>,>>,>,>,>,,>,>,>,>,>,>,>,>,,>,>,>,,>,>,>;&&&&>,&%&&,,,>-&%&*,-&%&&,,,>,>,>,,=&&&&,;&&&*,,,,*&&&-,=%&&*,,>,>,,,,,*&%&*,=&&&=,,,,*%&*>,&&&&-,,,,,,,,,,,,',,,',,,,,,,,,,=&&&&,,,,,,,*&%&*,,',',',',,,*&&&&',',,,'&&&&-',,,',,',',,>%&&&>',,','=&&&*',',',',',',*&&&*,,',','',''''',''',',',',''','''','''''*&&&*''''','''',',*&&&*,''',&&&&>,''''',''''''=&&&&=''''';&&&&*,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>,>>>>>>>,>,>>,>>>>>,>,>>>>>>>>>>>,>>,>>>,>,>,>>,>>,>>,,>,>>,>,,>>,>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,,>,&%&&--&&&*,>,,>&&&&,*&%&*,,,,,,,,>,;&%&%>=%&%-,,>,>&&&*,&&&&-,,,,,,>,,,-&&&&,&&%*>,,,,-&&&=>&&%&>,,,,',,,,,,,,,,,,,,,,,,,,',-&&&*,,',,,,*&&&*,,,,,,,,,,',*&&&&',,',,'&&&&-,',,',,',,',>&&&&>,',','-&%&&',',',',',',=&&&&'',',',',',,'',',''',','',''',','',',',*&&&*',','',''''''&&&&-'','>&&&&,'''','''''''',*&&&&**--*&&&&&>''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>,>>>>>>>>,>,>>>>>>,>,>,>,>,>>>,>,>,>>>>>,>>,>,>,>>>>,>>,>>,,>,>>,>,>,>,>,>,>,>,>,>,>,,>,,>,>,>,>,>,>,>,=&%&&*&%&>,,>,,=&%&*&&&&;>,>,>,>,,,,&&&&=&&&&,,,,,,*&%&=&&&&,,,,,,,,,,,,&&&&=&&&*,,,,,,&&&&*&&&*,,,,,,,,,,,,,,,,',,',,',,,,,=&&%*,,,',,,*&%&*',',',',',,,&%&&*,',,','&&&&-,',',',,',,'>&&&&>,',,',-&&&*,',',',',','-&&&&>,',','','',',''',,'''','',',''','','''*&&&*''''''','',',&&&&-'''',&&&&>,'''''''''''''>*&&&&&&&&&&*&;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>,>,>>>,>>,>>>>>>>,>,>>>>>>>>>>>,>>>>>>,>,>,>>,>>,>>>,,>,>,>,>,>>>,,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,,>,;&&&%&%&*,>,,>,,&&&&&%&&,,,,,,,,>,,,-&%&&&%&->,,,,>;&&&%&%&*,,>,,,,,>,,,*&%&&%&&;,,,,,,=&&&&%&&-,,,,,,,,',,,,,,,,,,,,,,,,,,,-&&&&',,,,,,*&&&*,,,,,,,,,,'>&&&&=,,',,,,*&%&-,,,',,',',',>&&%&>,',',,-&&&*,',',',',',,>&&&&-,''',,','','',,''',,'','','',''','',''-&&&&>',','''''''-&&&&>''''>&&&&,'','''',''''''''-&&&&&&&&&*,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>,>>>,>>>>>>>>>>>>>>>,>>,>>>>>>,>,>,>,>,>>,,>,>>,>>>>,>,>>,,>>,>>,>>,>>,,>>>,>>>,>,>,>,>,>,>,>,>,>,>,>,>,,,>,>,,>,,>,&%&&&&&;,,>,,,>=%&%&%&=>,>,>,>,,,>,>&&&%&&&,,,>,,,,*%&&&&&-,,,,>,,,,,,,-&&&&&%*,,,,,,,>&%&&&&&,,,,,,,,,,,',,,,,,,',,,,,',,,-%&&*,,,',,,*&%&*,',',',',,,=&&&&>,',,','&&&&-',',,',,',,,>&&&&>',',',-&&&&',',',',','''&&&&*',,'','','',''',','','',''','','','''',&&&&-''''','',',*&&&*'',''>*&&&>'''','''''''''';*&&&&**=->''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>,>>,>>,>>>>>,>,>,>>>>>>>>>>,>>>>,>>>,>,>>>,>,>>,>>,>>,>,>,>>,,>,>,>,>,>,>,>,>,>,>,>,,>,,>,,>>,>,,>,>,,>,=&%%&%*>,,,>,,>>&&%&&%>,,,,,,,>,,,,,*%&&%&*,,,,,>,,-&&%&%*>,,,,,,,,,,,,,&&%&&&-,,,,,,,,=&&%&&*,,,,,,,,,,,,,-**-,,,,',,,,,,,-&&%*,,,,',,*&&&*,,,,,,,,',;&&&&*,,,',,,,*&&&-,,',',',,','>&&&&>,,',',-&&&*,',',',',',,'-&&&&=',',',','',',','',','',';**=,','',',''*&&&*,',''''''';&&&&='''''>&&&&,''''''''''''',*&&=;,,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>;>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>,>>,>>>>>>>>>,>>>>,>>>>>>>,>,>,>,>,>>,>,>>,>,>>>,,>,>>>,>>,>,>>,>,>,,>>,>,>,>,>,>,>,>,>,>,>,>,,>,>,>,,>,>,,>,,>,,;&&&&%-,,>,,>,,>*&&&&&,,,>,>,,,>,>,>-&%&&&>,,>,,,,,,&&&&&=,,,,,>,,>,,,,,*&&%&&,,,,,,,,,;&&&&&-,',,,',,,,,,=&&&&*,,,,',,',,,=&&&*,,,,,,,*%&&*,,',',',,>*&%&&;,',,',',&&&&-',,',,',',,,>&&&&>,',','-&&&&',',',',','','&&&&&;,'','',','>>',',''','';&&&&*,','''',';&&&&=''','','>*&&&*,',''',&&&&>'''''''''''''*&&;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>,>>,>>>>>>>>,>>>,>>>>>>,>>>,>,>>>>>>>>>>>,>>>>,>>>>,>,>>>>>,,>>,>,>>,>,>>>>,>>,>,>,>,>,>,>,>,>,>,>,>>,>,>,>,>,,>,>,>,,>,>*%&%*>,>,>,,>,,-%%&&=,>,,,,>,,,,,,,,&&&%*,>,,,>,,>,*&%&%;,,>,,,,,,,,,,,;&&&&=,,,,,,,,,,*%&%*,,,,,,,,,,,,;&&%&&&;,,,,,,,,,'-&%&&,',',,,*&&&&=,,,,,,'=*%&&&*,,',,',,'*&&&-,',,',,,',',>&&&&>,',',,-&&&*,',',',',',''';&&&&&=>'',''',=*&''',','','*&&&&&='',',''''*&&&&=,'''''>*&&&&-''''''>&&&&>'','''''','',&&&-,',,;-**=*-,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-";>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>,>>,>>>>,>>>>>,>,>,>,>,>>,>,>>,>,>>>>,>,,>>>,>>,>>,>,>,,>,>,>>,>>>,>,>,>,>,>,>,>,>,,,>,,>,>,>>,,,,>,>,,>-&%&*,,,,,>,,>,,&&%&;,,,>,,,>,>,>,,,*%&&-,,,,,,,,,,>&&&&,,,,,,,,,,>,,,,,&%&&>,,,,,,,,,,-&&&*,,,,,,,,,,,,=&&&&&&-,,,,,,,,,,-&&&*,,,,',,*&&&&&**--=*&&&&&&&>',,',,',,&&&&-',',,',',',,>&&&&>',,','-&&&&',',',',',',','=&&&&&**=--**&&&&=',''',''>&&&&&&*,'''''',',*&&&&*=---*&&&&&*','',''>*&&&>'''',''''''',*&&&&*&&&&&&&&&&=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>;>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>,>>>>>>>>>>>>>,>>>>,>,>>>>>>>>>>,>>>,>>,>>,>,>>,>>,,>>,>>,>,>>>>,>,>,,>>,,>,>,>,>,>,>,>,>,,>>,>,>,,>,,,>>,>,,>,,>>&&&>>,>,,,>,,,,=&&*>,>,,>,,,,,,,,>,-&&&,,>,>,,,,,,,*&&=,,,,,>,,,,,,,,,,=&&=,,,,,,,,,,,,&&&;,,,,,,,,',,,;&%&&%&-,,',,',,,,=&&&&,,,,,,,*%&&&&&&&&&&&&&&&*>,,',,',,,'&&&&-,,',',,',,',>&&&&>,',,',-&&&*,',',',',',','',-&&&&&&&&&&&&&&&*,',''',',*&&&&&=',',','','>*&&&&&&&&&&&&&*''''''''>&&&&,'''''''''''''*&&&&&&&&&&&&&&&&*,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>,>>,>,>>,>,>>>>>,>>>>>,>,>,>,>,>>,>>,>>>,>>>,>>,>>>,>,>,>>>,,>,>,>,>>,,>>,>,>,>,>,>,>,,>,>,,>,,>,>,>>,,>,,>,>,>,,*&*,,>,,>,,>,>,,&%-,,,,,,,>,>,>,,,,,&&=,,,,,>,,,,,,;%&>,,>,,,,,,,,,,,,,;%&;,,,,,,,,,,,,=&&,,,,',,,,,,,,,&&&&&&,,,,,,,,,',-%&&*,',,',,*&&&&&&&&&&&&&&&*>,',,,,,',',*%&&-,',,,',,'',,>&&&&>,',','-&&&&',',',',',',','',;*&&&&&&&&&&&*-,'',','',,=&&&&&;''''''''''',=&&&&&&&&&&*-''',''''',&&&&>,''''''''''''>=&&&&&&&****&&&&&=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>,>>>>>>>>>>>>>>>>,>>>>,>,>>>>>>>>>>>,>>,>>,>>,>,>>,>>,>>,>>>,>,>>,>,>>>,>,>>,>,>,>,>,>,>,>>,>,>,,>,>,,>,,,>,,>,,,>,,>>-&;>,,>,,>,,,>,,=&>,>,>,>,,,,,,,,,,,*&,,>,,,,,>,,,,,*&,,,,,,,,,,,,>,,,,,&*,,,,,,,,,,,,,>*=,,,,,,,,,,,,,,>*%&*>,,,,,',,,,,-****,,,,,,,*&&&*>-*&&&%&**>,',,',',,',,,=***-,',',',,,'',>****>',',,,-***=',',',',','',','','-***&&&***;,'',''','''',=*&*;',',',',',''''>=**&&&**-,'',''',''',*==*,'','''',''''''';-=*-;,,'''>=&&&&,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>,>>>>>,>>>>>>>>>>>,>,>>,>>>>,>>>>>>,>,>,>,>,>>,>>,>>,>>>>,>,>,>,>>,>,>,>,>,>>,,>,>>,,>,>,>,>,>,>,>,>,,>,>>,>,>>,>>,,>,,>,>,,>,,>;,,>,,>,,,>,,>,,;,,,,,,,>,,>,>,>,>,,>,,,,,,,,,,,,,,>>>,,,>,,>,,,,,,,,,,>>,,,,,,,,,,,,,,>,,,,,,',,,,,,,,,,>>,,,',,,,,,,',,,,,,,',,',,*%&&*,,,,>>>,,,,',,,',,',,,',,,,,',,',','',,,',,,,',,','','',',',',','',',',',',','',,>>>','',',',','',',',,>,',''''''''',','''''>,>,'',''''''',''''''''''''''''''''''''''''''''''''**&&;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>;>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>,>>,>,>>>>>>>>,>>>,>,>,>>>>>>>>>>,>>,>>,>>,>,>>>,>>>,>,>>,>>,>,>,>>,>,>,>>,>,>,>,>,>,>,,>,>,,,>,,>,,,,>,>,>,>,,>,,>,,>,,,>,,>,>,,,,>,,>,>,>,,,>,,,,,,,,,>,,>,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,',,,,,',*&&&*,,',,,,',,,,',,,',,',','',',',',,,,,'',','',,',',,',',',',',',',,',',',',','',',''',',''','','',''''',''''',',',',''''','',''''''''',''''''','''''''''','''''''''''''''''''''''*&&&='''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>,>>>>>,>>>>>>>>>>,>>,>>>,>>>>>>>,>,>,>,>,>>,>>,>>>,>>>,,>>,>,>>,>,>>,>>,>,>,>,>,>,>,>,>,>,>,>,>>,>,>>,>,>,,>>,>,,>,,>,,>,>,,>,>,>,,,>,,,>,>,,,,,,,,,>,,,,>,,,,>,,,,,,,,,>,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,,,',,,,',,,,,,,,,',,,,*&&&*,,,,',',,'',,'',,,',,,,,',,',,,'',',,',',,',',','',',',',',',','''',',''',',','',',''',,'','','',,',''',','''''''',','',''''',''',''',''''''''','',''''''''''''''''''''''''''''**&&-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>>,>>>>,>>>>>>>>>,>,>,>>>>>>>>>>,>>>,>>,>,>>,>>>,>,>,>>,>>,>,,>,>,>,>>>,>,>,>,>,>,>,>,,>,>,,>,>,>>,,>,>,,>,>,>,>,,>,,,,,>,>,,>,,,>,,>,>,>,,,,>,>,,,>,,,,>,>,,>,,,,,,,,,>,,,,,,,>,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,,',,',,',,,',,*%&&*,',,,,,',,,',,,',,','',,',,',',,',',',,',',',,',,',',',',',',',',,','',,',','',','',','',',''','''',',',''',',','''''''','',''',''''''','''''''''''''''''''''''''-;''''''''''',*&&&;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>,>>>>>>,>,>>>>>>>>>,>,>,>,>>>>,>>>,>>>,>>,,>>,>>>,>,>,>>>>,>>>,>,,>>,>,>,>,>,>,>,>,>,,>,>,,>,,>,,>,>,,>,,,>,,>,>,>,>,,,,>,,>,,>,,,,,,>,>,,,,,,,,,>,,,,,,,,,,,>,,,,,,>,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,,',,',,,',,,,,,,,,,,*&&&*,,,',',,,',,,',,',,,,',',',',,',,',,',',',,',',,',',',',',',',',''',','','',',''',,''','','','',','','''',''''''',',',''''''''''','',''','','',''',''''''',''''';&&*;'''''''';*&&&*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>,>>>>>>>,>>,>>>>>>,>,>,>>>>>>>>>>,,>>,>,>>,>>>,>>>,>>,,>>>>,>,,,>,>,>,>>,,>>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,,>,>,>,>,,,>,,>,>,,>,,>,,,>,>,,,,,>,>,,>,,,,,>,,>,>,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,',,',',',*&&&*,,,,,,',,',',,',,',',,,',,,',,',,',',',,',',',',',',',',',',',',',',','',,',',',''',,'','',',''''','',','',',',''''''','',''','''''''''''''''''',''''''','''''',*&&&&*--,>--*&&&&&-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>,>>,>>>>>>>,>>,>>>>>>,>,>,>,>,>>>>,>>>>,>>,>>,>,>,>>>,,>,>>>>>>,>,>>,>>>,,>,>,>,>,>,>,>,>,,>,>,>,>,>,>,>,,>,>,,,,>,,>,,,>,,,>,,>,,,>,,,,,>,>,,,,>,,,,>,,,,,,,,,>,,,,>,,,,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,',,,,',',,',,,,,,,,,,,*%&&*,',',',,',,,',,',,,',',',',',',',,',,',',',',',',',',',',',','',','',',''',''','',''',',','''',',''',''',''''''',',',''''',''''','',''''''''''''''','''''''''''-&&&&&&&&&&&&&&&&&='''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>,>>>>>>>>>,>,>>>>>>>>,>,>>>>>>>>>>>,>,>>,>,>>,>>,>>,>>,>,>>>,>,,>,,>,>,>,>,,>>,>,>,>,>,>,>,>,>>,>,>,,,>,>,,,>,>,,,>>,>,>,,>,,,>,,,>,,>,,,>,>,,,,,>,>,,,>,,,,>,,>,,,,,,,>,,,,>,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,',,,',,,,,,,,,',,,,',,,,,,,',,',,',',,*&&&*,,,,,',,,',,,',,',',,',,,',,,',,',',',',,',,,',',',',',',',',,',',',',',,',','',',',''','',','',',''',''',',',''''''',','''',','''''','','','''''''''''''''''''';*&&&&&&&&&&&&&*;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>>>>>>>>>,>>>>>,>>,>,>>>>>>,>,>,>,>,>>>>>,>>>,>>,>>,>>,>,>>,>,>>>>,>>,>>,>,>>,>,>,>,>,>,>,>,>,,,>,,>,>>,,>,>,>,,,>>,,,>,,,>,>,>,>,>,,,>,,>,,,,,>,>,,,,,,,,,,>,,,,,,>,,>,,,,>,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,',',,,,,,',,,,,,*&&&*',',,',',',',,,',,,',,'',,',',,',',',,',',',',',',',',',',',''',','',',''',',','','',','',''','','',''','''''',',','''''','''''',','''''''''',''''''''''',''''''''>=*&*&&*&&&*-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>,>>>>>>>>>>,>,>>>>>>>>>>>,>,>,>>,>>,>>,>>,>>>,>>,>>,,>,>,>>,>,>,>,>>,>,>,>,>,>,>,>>,>,>,>,,>>,>,,>,>>,,,>,,>,>,,,,,>,,,>,>,,>,,,>,>,,,,>,>,,>,,>,,,>,,>,,,,,,,,,,,,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',',,,,,,',,,,,,,',',,,,',',,-=-=-,,,',,,,,,,',',,',,',,,,',',',',,',',',',,',',',',',',',',',',','',',',',',''',',',','','','',''','',,'',',','''''',''','''','''''''''''',''''','''''''''''''''''''''>;;--;>,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>,>>>>>>>>>>,>>>,>>>>,>>>>,>>,>>>>>,>>,>>,>>>>>,>,>,>,>,>>,>>>,>>,>>,>>,>>,,>,>,>,>>>,>,>,,>,>,>,>,,>,>,>,>,>,>,>,>,,>,>,>,,,>,>,,>,,,>,>,>,,>,>,>,,,,>,,,>,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,>,,>,,,,,,,,,,,,>,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,,',,,,,,',,,',,,',,,,',,,',',',',,,',,',','',,',,,',',,',',',',',,',',',',',',',',',',,','',','',,'',''','','',',''','','''''''''''',','','''','''',''','','''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>>>>>>,>>>>>>>>>>>,>,>>>>>>>>>>,>>,>>>,>>,>>,>,>,>>>,>>>,>,>>,>>>,>>>,>>>>,>,>,>,>,>,>,>,,>,>,,>,>>,>,,>,,>,>,>,,,>,,,>,,>,>,,>,,,>,,,>,>,>,,,>,,>,>,>,,>,>,,>,,>,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,',,,,,,,,,',,,,,,,',,,,,,,,,,,,,,',,,',,,',,,,',,,,',,,',',,,,',,',',,,'',',',,',',',',',',',',',',','',''',,','',''','',',','','''','','',',',','',','''','''''''','''','''''',''',''''','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>,>>>,>>,>>,>,>>>>>,>,>,>,>,>>>>,>,>>,>>>>>>,>>>,>>,>,>>,>,>,>,>,,>>,,,>,>,>,>,>,>,>,>,>,>,>,,>,,,>,>,,>,,>,,>,>,>>,,,>,,>,,>,>,,,>,,,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,',,',,,,,',,',,,,',',',,',',',,,',,',',,'',,',',',',,,,'',',',',,'',,,',,',',',',',',',',',',',',','',,''',','',,'',,''',','',','','','''''''','''''','''','',''','''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>,>>>>>>>>,>>>>>>>>>>,>>>>>,>>>>>>>>>>>>,>,>>>,>>>,>,>,>>,,>>,>,>>,>>,>>,>,>>,,>>>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,>,,>,,>,>,,,>,,>,,,>,,,>,>,,,>,>,,,,,,,,,>,,,>,,>,,>,,,,,,,>,,>,,>,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,',,,',,,',,,','',,,',,',,',,,'',,',',',,,',',',',',',',','',','',,','',,''',''','','',''','',''',',',',''',',''','''''''''''','''','''','''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>,>>,>>>>>>>,>>,>,>,>,>,>,>>>>>,>>,>,>>>,>,>>>,>>,>>,>>,>,,>,>,>>>,,>,>,>,>,>,>,>,>,,>,>,,>,>,>,>,>,,>,>,,>,,>,,>,,>,,>,>,,>,,,,,>,,,,>,>,>,>,,,,>,,,,,,,,>,,>,,,,,,,,,,,,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,',,,,,,,,,',,,,,',',',,',,',',',',,,',,,,',,,,',,',,,,',,,,,',,',,',,',',,'',,,',',',,',',',',',',',',',,','',',''',',',',',',','','',''','','''''','''',''','','','','''',''',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>,>>>,>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>>>>>>>>>>>>>>>,>,>,>>>,>>,>>,>>,,>>,>>,>,>,>>>,>>>,,,>>>,>,>,>,>,>,>,>,>,>,>>,>,>,>,,,>,>,,>,>,>,,>,,>,,>,,,,>,,>,>,,,>,>,,,,,,,,>,,,,,>,>,,,,,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,',',,,,,,,,,,,,,,,,,,',,,,',,,',',,',,',',,'',',',,',',',,',',,''',,',',',',',',',',',',','','',',',,'',''',',''','',',''',',','',',',''',''','''''','''''',''''''''''''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>,>>>>>>>>>>>,>>,>>>>>>>,>>>>,>,>>>>>>>,>,>,>,>,>,>,>,>>,>>>>,>>,>>,>>,>>,>,>,>>,>,>,>,>,>,>>>,,>,>,>,>,>,>,>,>,>,,>,,,>,,>,>>,>,,,>,,>,,>,,>,,>,,>,>,,,>,,,,>,,,,,>,>,>,,,>,>,,,,,,>,,>,,,,,,>,,>,,>,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,',,',',,',',,,',',,',,',,',,,',,,',,,',,',',,,',,',',',,,',',',',',',',',',',',','',',','','',',','','','','''',',''''',''''''',''',''',',''','',''',''''','',''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>,>>>>>>>>>>>>>>>>>>,>>,>,>,>>>,>>,>>,>>>,>>,>>>,>,>,>,>,>,>>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,,,,>,>,>,,,>,>,,>,,,>,,,>,>,,>,>,,,>,,,,,,,,,,,,,,,>,,>,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',',',,,,,,,,,,,,',,,,,,,,,,,',,',',,',,',,',,',,'',,',',',,'',',',',,',',',',',','','',',','',',',''',','',','',','','',',''',',',''',''',''''''''''''''''',''''''''',''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>,>>,>>>>>,>>,>,>,>,>,>,>,>>>,>>,>>>>,>>,>>,>>,,>>,>>,,>,>>,>,>,>,>,>>,>,>,>,>,>,>,>,>>,>,>,>,>,>>>>,,>,,,>>,,>,>,,,>,,>,>,,,>,,,,,>,,>,>,>,>,>,,,>,,,,,,,>,,,,,,,,,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,',,',,',,,,,,,',,',,',,',,,,,,,,,,',,',',',,,',',',',',,,',,,,',,',,',',,',,,',,',,',',,,',,','',',',',',',',,',','',',,',','',','','',','''','','','',''''''',''',''','',''','',','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>,>>>>>>>>>,>>>>>>>,>>>>>>>>>,>>>>>>>>>>>>>>>>>>>,>>>,>>,>,>,>>>,>,>,>>,>,>,>>>,>,>>,>>,>>,,>,>,>,>,>,>,>,>,,,>,,>,,,>,,,,,>,,>>,,,>,,,>,>,,>,,,,>,,>,>,>,,,,,,,,,,,,,,>,,,>,,>,,,,>,,,,>,,>,,,,>,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,',,',,,,,,,,,,,,,,',,',',,,,,,,,,',,,,,,,,',,',,,',',,',,',',,',',',',,',',','',,',',,',',',',',','',',',',''','',',','','',''',',','''','',',',',',''',''','''''','''''''',''','',''''',''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>,>>>>>>>,>>>>>>>,>>>>>>,>>,>>,>>>,>>,>,>,>,>,>,>,>,>>>,>>>>,>>>>>,>>,>>>,>>,>>>,>,>,>,>,>,>,>>>,>,>,>,>,>,>,>,>>,>,>,>,>,,>>,>,>,,,>>,,>,>,,,>,,>,>,,>,,,,,,,,>,>,>,>,,>,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,',,,,,,,,,',,',',,,,',',',,,',,',',,,',,',,,',',,,',,',',',,,',,'',,',',',',',',',','',',',',',','',''',',',',',',''',','',''''''''''',''',''''',''''','',''''''''''','''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>,>>>>>>>>>>>>>,>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>,,>>,>,,>>,>>,,>>,>>,,>>,>>,>,>,>,>,,>,>,>,>,>,>,>,>,,,>,>,>,>,>>,,>,,,>,>,,,>,>,,>,,>,,,,>,>,,>,>,>,,,,,,,,,>,,,>,,>,,>,,>,,,,,,,,,>,,,,,,,,>,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,',',,,,,,,,,,,',',,,,,,',,,',,,',',,',,'',,,',',',,',,,''',',',,',',',',',',',',',,','','',',','',','','',','''',''','''',',',',',''',''','',''','''''''','','''''''',''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>,>>,>,>>,>>,>>,>,>,>,>,>,>,>>>,>>>>>,>>>>,>>,>>>,>>,>>>>,>,>>,>,>>,>>,>,>,>,>,>,>,>,>>,>,,>,,>,>,,>,,>,>,>,,>>,,,>,,>,,>,>,,,,>,,,,,,,>,>,>,>,,,,,,,,,>,,,,,,>,,,,>,,,,,>,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,',,,,,,,,,',,,,,,',,,',',',,,,',',',,',',,',,,,',,',,,'',,',,,',,'',,,,',',',',,',',',',',',','',',',',',',','',',''',''',,'',','',','','''''''',''',''''',''',','','''''',''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>,>>>>>,>>>,>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>,>,>>>,>,>>,>,>,>,>,>,,>,>>,,>>>,>,>,>,>,>,>,>,>,>,>,,>,>,>,>,>,,>,>,>,,>,,>,,,>>,,>,,>,,,>,>,,,>,>,>,,>,,,,,,,>,>,,>,,,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,',,',,,,',,,,,,,,',,',,,,,,',,',,,',,,,,,,',,,,,,,,,,,',,',',,',,,',,,,',',',',',','',,,',',,',',',',',',',','',','','','',',''',',',',''',''','','','',',',',''',''',''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>,>>>,>,>,>>,>,>,>,>,>,>,>,>>,>>,>>,>>>>,>>>,>>,>>,>>>>,>,>>,,>,>>,>,>>,>,>,>,>,>,>,>,>,>,>,>,>>,,>,,>,,>,,>>,,,>,,>,,,>,,,>,>,,,,,,>,,,,>,>,,,,,,,,,>,,,,>,,,,,,,,,>,,>,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,',,,,,,,,,,,,,',',,,',',',',',,,',,,',,,',,'',',,',,',,,',',,'',,','',',',',',',',',','',',',',','',',,'','','',','','','','',''''''''',''','','','','','',','''''''',''','''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>,>>>>>>>>>>>,>>>>,>>>>,>>,>>>,>>>>>>>>>>>>>>>>>>>>>>>,>>,>>,>>,>,>>,,>>,>>,>>,,>,>,>,>>,>,>,>>,>,>,>,>,>,>,>,>,,>,,,>,,>,,>,>,>,>,,>,,,>>,,>,,>,>,>,,,,>,>,>,,,>,>,,,,>,,>,>,,,,,>,,,,,>,,,,>,,,,,,>,,>,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,',,,,,,,',,,',,',,',,',,,,,',,,,,,,,,,',',,',,,',',',,,',',,',,',',,',',',',,,',',',',',',',',',,',',',',',','''',',''',','','','','''',',',',',''','''''''''''''''''''','''''''','''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''",
-">>>>>>>>>>>>>>>>>>>>,>>>>>,>>>>>,>>>>>>,>>>>>>>,>,>>,>,>,>,>,>,>,>>,>>>,>>,>>>,>>>,>>,>>,>>>,>>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,,>,>,,>,,>,>,,>,,,>,,,>,,,,,>,>,,,,,,,>,,,,,,>,,,,,,,,,>,,,,,>,,,,>,,,,,,,,,,,,,,,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,',,',,,,,,,,,,,',,,,,',',,,',',',',',,,,',,',',,,',,',,',',,',,',',',,',','',,',',',',',',',','',''',','','',,',',',',''','','','',',''''''''''',''''','','','','',''''''','''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"};
diff --git a/config/grub2/default b/config/grub2/default
new file mode 100644 (file)
index 0000000..a8b8f78
--- /dev/null
@@ -0,0 +1,5 @@
+GRUB_TIMEOUT=5
+GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
+GRUB_DEFAULT=saved
+GRUB_CMDLINE_LINUX="panic=10"
+GRUB_DISABLE_RECOVERY="true"
diff --git a/config/install/fstab b/config/install/fstab
deleted file mode 100644 (file)
index 58297c2..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-/dev/ram0      /       squashfs
-/proc          /proc   proc
-none           /sys    sysfs
-none           /tmp    tmpfs
-none           /dev    tmpfs
diff --git a/config/install/group b/config/install/group
deleted file mode 100644 (file)
index 465a9cf..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-root:x:0:root
-tty:x:5:
-disk:x:6:
-uucp:x:14:
diff --git a/config/install/halt b/config/install/halt
deleted file mode 100644 (file)
index 90a0c80..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-# Clear screen
-/usr/bin/clear
-echo "Shutting down..."
-echo "Sending all processes the TERM signal..."
-/sbin/killall5 -15
-sleep 3
-echo "Sending all processes the KILL signal..."
-/sbin/killall5 -9
-sleep 3
-echo "Unmounting filesystems..."
-/bin/umount -a > /dev/null 2>&1
-echo "Unmounting root..."
-/bin/mount -n -o remount,ro /
-echo "Rebooting..."
-/sbin/reboot -f
diff --git a/config/install/hosts b/config/install/hosts
deleted file mode 100644 (file)
index f4fb350..0000000
+++ /dev/null
@@ -1 +0,0 @@
-localhost      127.0.0.1
diff --git a/config/install/nsswitch.conf b/config/install/nsswitch.conf
deleted file mode 100644 (file)
index da516c6..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-passwd:     files 
-shadow:     files 
-group:      files 
-hosts:      files
-services:   files
-networks:   files
-protocols:  files
-rpc:        files
-ethers:     files
-netmasks:   files     
-bootparams: files
-automount:  files 
-aliases:    files
-netgroup:   files
-publickey:  files
diff --git a/config/install/passwd b/config/install/passwd
deleted file mode 100644 (file)
index 365a8d7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-root::0:0:root:/:/bin/ash
diff --git a/config/install/profile b/config/install/profile
deleted file mode 100644 (file)
index 02c63b9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/ash
-
-TERM=linux
-LANG=en_US.UTF-8
-export TERM LANG
-
-/usr/bin/unicode_start
diff --git a/config/install/rc_installer b/config/install/rc_installer
deleted file mode 100644 (file)
index c1dd5b6..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# IPFire Installer RC
-#
-
-echo >/proc/sys/kernel/printk "1 4 1 7"
-echo -n -e "\033[9;0]"
-
-ln -snf /proc/self/fd/0 /dev/stdin
-ln -snf /proc/self/fd/1 /dev/stdout
-ln -snf /proc/self/fd/2 /dev/stderr
-ln -s /proc/kcore /dev/core
-mount tmpfs -t tmpfs /tmp
-
-echo "Starting shells on tty2 and tty3 ..."
-/usr/local/bin/iowrap /dev/tty2 /bin/bash &
-/usr/local/bin/iowrap /dev/tty3 /bin/bash &
-
-echo "Loading Installer..."
-/bin/bash --login -c "/bin/install /dev/tty2"
-
-/etc/halt
diff --git a/config/install/shells b/config/install/shells
deleted file mode 100644 (file)
index 006aa38..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/bin/ash
diff --git a/config/rootfiles/common/armv5tel/dracut b/config/rootfiles/common/armv5tel/dracut
deleted file mode 100644 (file)
index 9c41aba..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#boot/ipfirerd-KVER-kirkwood.img
-#boot/ipfirerd-KVER-multi.img
-#boot/uInit-ipfire-kirkwood
-#boot/uInit-ipfire-multi
-etc/dracut.conf
-etc/dracut.conf.d
-#etc/dracut.conf.d/dracut.conf
-sbin/dracut
-sbin/dracut-catimages
-sbin/dracut-gencmdline
-sbin/lsinitrd
-sbin/mkinitrd
-usr/share/dracut
-usr/share/dracut/dracut-functions
-usr/share/dracut/modules.d
-usr/share/dracut/modules.d/60xen
-usr/share/dracut/modules.d/60xen/check
-usr/share/dracut/modules.d/60xen/install
-usr/share/dracut/modules.d/60xen/installkernel
-usr/share/dracut/modules.d/60xen/xen-pre-udev.sh
-usr/share/dracut/modules.d/90kernel-modules
-usr/share/dracut/modules.d/90kernel-modules/install
-usr/share/dracut/modules.d/90kernel-modules/installkernel
-usr/share/dracut/modules.d/90kernel-modules/parse-kernel.sh
-usr/share/dracut/modules.d/95debug
-usr/share/dracut/modules.d/95debug/check
-usr/share/dracut/modules.d/95debug/install
-usr/share/dracut/modules.d/95rootfs-block
-usr/share/dracut/modules.d/95rootfs-block/block-genrules.sh
-usr/share/dracut/modules.d/95rootfs-block/install
-usr/share/dracut/modules.d/95rootfs-block/mount-root.sh
-usr/share/dracut/modules.d/95rootfs-block/parse-block.sh
-usr/share/dracut/modules.d/95terminfo
-usr/share/dracut/modules.d/95terminfo/install
-usr/share/dracut/modules.d/95udev-rules
-usr/share/dracut/modules.d/95udev-rules/01-ignore.rules
-usr/share/dracut/modules.d/95udev-rules/59-persistent-storage-volid.rules
-usr/share/dracut/modules.d/95udev-rules/59-persistent-storage.rules
-usr/share/dracut/modules.d/95udev-rules/61-persistent-storage.rules
-usr/share/dracut/modules.d/95udev-rules/install
-usr/share/dracut/modules.d/95udev-rules/load-modules.sh
-usr/share/dracut/modules.d/98syslog
-usr/share/dracut/modules.d/98syslog/README
-usr/share/dracut/modules.d/98syslog/check
-usr/share/dracut/modules.d/98syslog/install
-usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh
-usr/share/dracut/modules.d/98syslog/rsyslog.conf
-usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh
-usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh
-usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh
-usr/share/dracut/modules.d/98syslog/syslog-genrules.sh
-usr/share/dracut/modules.d/99base
-usr/share/dracut/modules.d/99base/check
-usr/share/dracut/modules.d/99base/dracut-lib.sh
-usr/share/dracut/modules.d/99base/init
-usr/share/dracut/modules.d/99base/initqueue
-#usr/share/dracut/modules.d/99base/init~
-usr/share/dracut/modules.d/99base/install
-usr/share/dracut/modules.d/99base/loginit
-usr/share/dracut/modules.d/99base/parse-blacklist.sh
-usr/share/dracut/modules.d/99base/parse-root-opts.sh
-#usr/share/man/man5/dracut.conf.5
-#usr/share/man/man8/dracut-catimages.8
-#usr/share/man/man8/dracut-gencmdline.8
-#usr/share/man/man8/dracut.8
-sbin/switch_root
index dfe2e4869e8e472a8fd725d18663c024158fa1ef..7a4e41b7da613d8477bbb9a02939a832ac08b80e 100644 (file)
@@ -44,7 +44,6 @@ etc/rc.d/init.d/ipsec
 etc/rc.d/init.d/leds
 etc/rc.d/init.d/localnet
 etc/rc.d/init.d/mISDN
-#etc/rc.d/init.d/mdadm
 #etc/rc.d/init.d/mediatomb
 #etc/rc.d/init.d/messagebus
 #etc/rc.d/init.d/miau
@@ -214,8 +213,10 @@ etc/rc.d/rcsysinit.d/S05modules
 etc/rc.d/rcsysinit.d/S10udev
 etc/rc.d/rcsysinit.d/S19waitdrives
 etc/rc.d/rcsysinit.d/S20swap
+etc/rc.d/rcsysinit.d/S25partresize
 etc/rc.d/rcsysinit.d/S30checkfs
 etc/rc.d/rcsysinit.d/S40mountfs
+etc/rc.d/rcsysinit.d/S42fsresize
 etc/rc.d/rcsysinit.d/S45udev_retry
 etc/rc.d/rcsysinit.d/S50cleanfs
 etc/rc.d/rcsysinit.d/S60setclock
index 4880b60ffe7a6bd4f18da36d5b0cee16cd14f7be..bccf0fa77ba06644047690bb39b851f8e14e2cdb 100644 (file)
@@ -1,5 +1,4 @@
 boot/System.map-KVER-ipfire-kirkwood
-#boot/System.map-ipfire-kirkwood
 boot/config-KVER-ipfire-kirkwood
 boot/dtb-KVER-ipfire-kirkwood
 #boot/dtb-KVER-ipfire-kirkwood/kirkwood-cloudbox.dtb
index 3c20c523634f8b7bdbd6ce1f38f90ccf4d0b2b09..abc9e2454c9fc16c6dc6b8627190a119a09b3c1f 100644 (file)
@@ -1,5 +1,4 @@
 boot/System.map-KVER-ipfire-multi
-#boot/System.map-ipfire-multi
 boot/config-KVER-ipfire-multi
 boot/dtb-KVER-ipfire-multi
 #boot/dtb-KVER-ipfire-multi/am335x-bone.dtb
index 01f9312ee890ec7b24675bad898ca674b8bd95e9..c10b51cf6ba7336157dee58158e958bbbd86a779 100644 (file)
@@ -1,5 +1,4 @@
 boot/System.map-KVER-ipfire-rpi
-#boot/System.map-ipfire-rpi
 boot/config-KVER-ipfire-rpi
 boot/kernel.img
 boot/vmlinuz-KVER-ipfire-rpi
index ecaeb1bdd2a8ede5fd5636451e5b6231af57adc3..84f587f3cdb458ab43f156b7d985f57a1fe2ec4f 100644 (file)
@@ -1,6 +1,59 @@
 bin/sh
 bin/bash
 #bin/bashbug
+#usr/share/doc/bash
+#usr/share/doc/bash/CHANGES
+#usr/share/doc/bash/COMPAT
+#usr/share/doc/bash/FAQ
+#usr/share/doc/bash/INTRO
+#usr/share/doc/bash/NEWS
+#usr/share/doc/bash/POSIX
+#usr/share/doc/bash/RBASH
+#usr/share/doc/bash/README
+#usr/share/doc/bash/bash.html
+#usr/share/doc/bash/bashref.html
 #usr/share/info/bash.info
+#usr/share/locale/af/LC_MESSAGES/bash.mo
+#usr/share/locale/bg/LC_MESSAGES/bash.mo
+#usr/share/locale/ca/LC_MESSAGES/bash.mo
+#usr/share/locale/cs/LC_MESSAGES/bash.mo
+#usr/share/locale/da/LC_MESSAGES/bash.mo
+#usr/share/locale/de/LC_MESSAGES/bash.mo
+#usr/share/locale/el/LC_MESSAGES/bash.mo
+#usr/share/locale/en@boldquot
+#usr/share/locale/en@boldquot/LC_MESSAGES
+#usr/share/locale/en@boldquot/LC_MESSAGES/bash.mo
+#usr/share/locale/en@quot
+#usr/share/locale/en@quot/LC_MESSAGES
+#usr/share/locale/en@quot/LC_MESSAGES/bash.mo
+#usr/share/locale/eo/LC_MESSAGES/bash.mo
+#usr/share/locale/es/LC_MESSAGES/bash.mo
+#usr/share/locale/et/LC_MESSAGES/bash.mo
+#usr/share/locale/fi/LC_MESSAGES/bash.mo
+#usr/share/locale/fr/LC_MESSAGES/bash.mo
+#usr/share/locale/ga/LC_MESSAGES/bash.mo
+#usr/share/locale/gl/LC_MESSAGES/bash.mo
+#usr/share/locale/hr/LC_MESSAGES/bash.mo
+#usr/share/locale/hu/LC_MESSAGES/bash.mo
+#usr/share/locale/id/LC_MESSAGES/bash.mo
+#usr/share/locale/it/LC_MESSAGES/bash.mo
+#usr/share/locale/ja/LC_MESSAGES/bash.mo
+#usr/share/locale/lt/LC_MESSAGES/bash.mo
+#usr/share/locale/nl/LC_MESSAGES/bash.mo
+#usr/share/locale/pl/LC_MESSAGES/bash.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/bash.mo
+#usr/share/locale/ro/LC_MESSAGES/bash.mo
+#usr/share/locale/ru/LC_MESSAGES/bash.mo
+#usr/share/locale/sk/LC_MESSAGES/bash.mo
+#usr/share/locale/sl/LC_MESSAGES/bash.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/bash.mo
+#usr/share/locale/sv/LC_MESSAGES/bash.mo
+#usr/share/locale/tr/LC_MESSAGES/bash.mo
+#usr/share/locale/uk/LC_MESSAGES/bash.mo
+#usr/share/locale/vi/LC_MESSAGES/bash.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/bash.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/bash.mo
 #usr/share/man/man1/bash.1
 #usr/share/man/man1/bashbug.1
index 81a953958aaea2980823ae55852f0f0ebe9f21a1..069d0c4f6d94f8e054ba8f47773d2719421df6d4 100644 (file)
@@ -2,6 +2,7 @@
 #usr/bin/cmake
 #usr/bin/cpack
 #usr/bin/ctest
+#usr/doc
 #usr/doc/cmake-2.6
 #usr/doc/cmake-2.6/ccmake.docbook
 #usr/doc/cmake-2.6/ccmake.html
index c08e228a94d388a0b0df6bbe1ac691cff117e723..d7f2c76768e443bd1fc12925babb7cfdd853832a 100644 (file)
@@ -1,4 +1,4 @@
-#bin/[
+bin/[
 bin/chgrp
 bin/chmod
 bin/chown
@@ -22,69 +22,244 @@ bin/true
 bin/uname
 etc/DIR_COLORS
 usr/bin/[
+usr/bin/arch
+usr/bin/base64
 usr/bin/basename
-#usr/bin/cksum
-#usr/bin/comm
-#usr/bin/csplit
+usr/bin/chcon
+usr/bin/cksum
+usr/bin/comm
+usr/bin/csplit
 usr/bin/cut
-#usr/bin/dir
+usr/bin/dir
 usr/bin/dircolors
 usr/bin/dirname
 usr/bin/du
 usr/bin/env
-#usr/bin/expand
+usr/bin/expand
 usr/bin/expr
-#usr/bin/factor
-#usr/bin/fmt
+usr/bin/factor
+usr/bin/fmt
 usr/bin/fold
 usr/bin/groups
 usr/bin/hostid
 usr/bin/id
 usr/bin/install
 usr/bin/join
-#usr/bin/link
-#usr/bin/logname
+usr/bin/link
+usr/bin/logname
 usr/bin/md5sum
 usr/bin/mkfifo
-#usr/bin/nl
+usr/bin/mktemp
+usr/bin/nl
 usr/bin/nohup
-#usr/bin/od
+usr/bin/nproc
+usr/bin/numfmt
+usr/bin/od
 usr/bin/paste
-#usr/bin/pathchk
-#usr/bin/pinky
-#usr/bin/pr
-#usr/bin/printenv
+usr/bin/pathchk
+usr/bin/pinky
+usr/bin/pr
+usr/bin/printenv
 usr/bin/printf
-#usr/bin/ptx
+usr/bin/ptx
 usr/bin/readlink
+usr/bin/realpath
+usr/bin/runcon
 usr/bin/seq
 usr/bin/sha1sum
+usr/bin/sha224sum
+usr/bin/sha256sum
+usr/bin/sha384sum
+usr/bin/sha512sum
 usr/bin/shred
+usr/bin/shuf
 usr/bin/sort
 usr/bin/split
 usr/bin/stat
-#usr/bin/sum
-#usr/bin/tac
+#usr/bin/stdbuf
+usr/bin/sum
+usr/bin/tac
 usr/bin/tail
 usr/bin/tee
 usr/bin/test
+usr/bin/timeout
 usr/bin/touch
 usr/bin/tr
-#usr/bin/tsort
+usr/bin/truncate
+usr/bin/tsort
 usr/bin/tty
 usr/bin/unexpand
 usr/bin/uniq
 usr/bin/unlink
-#usr/bin/users
-#usr/bin/vdir
+usr/bin/uptime
+usr/bin/users
+usr/bin/vdir
 usr/bin/wc
 usr/bin/who
 usr/bin/whoami
 usr/bin/yes
+#usr/libexec
+#usr/libexec/coreutils
+#usr/libexec/coreutils/libstdbuf.so
 usr/sbin/chroot
 #usr/share/info/coreutils.info
+#usr/share/locale/af
+#usr/share/locale/af/LC_MESSAGES
+#usr/share/locale/af/LC_MESSAGES/coreutils.mo
+#usr/share/locale/af/LC_TIME
+#usr/share/locale/af/LC_TIME/coreutils.mo
+#usr/share/locale/be/LC_MESSAGES/coreutils.mo
+#usr/share/locale/be/LC_TIME
+#usr/share/locale/be/LC_TIME/coreutils.mo
+#usr/share/locale/bg/LC_MESSAGES/coreutils.mo
+#usr/share/locale/bg/LC_TIME
+#usr/share/locale/bg/LC_TIME/coreutils.mo
+#usr/share/locale/ca/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ca/LC_TIME
+#usr/share/locale/ca/LC_TIME/coreutils.mo
+#usr/share/locale/cs/LC_MESSAGES/coreutils.mo
+#usr/share/locale/cs/LC_TIME
+#usr/share/locale/cs/LC_TIME/coreutils.mo
+#usr/share/locale/da/LC_MESSAGES/coreutils.mo
+#usr/share/locale/da/LC_TIME
+#usr/share/locale/da/LC_TIME/coreutils.mo
+#usr/share/locale/de/LC_MESSAGES/coreutils.mo
+#usr/share/locale/de/LC_TIME
+#usr/share/locale/de/LC_TIME/coreutils.mo
+#usr/share/locale/el/LC_MESSAGES/coreutils.mo
+#usr/share/locale/el/LC_TIME
+#usr/share/locale/el/LC_TIME/coreutils.mo
+#usr/share/locale/eo
+#usr/share/locale/eo/LC_MESSAGES
+#usr/share/locale/eo/LC_MESSAGES/coreutils.mo
+#usr/share/locale/eo/LC_TIME
+#usr/share/locale/eo/LC_TIME/coreutils.mo
+#usr/share/locale/es/LC_MESSAGES/coreutils.mo
+#usr/share/locale/es/LC_TIME
+#usr/share/locale/es/LC_TIME/coreutils.mo
+#usr/share/locale/et
+#usr/share/locale/et/LC_MESSAGES
+#usr/share/locale/et/LC_MESSAGES/coreutils.mo
+#usr/share/locale/et/LC_TIME
+#usr/share/locale/et/LC_TIME/coreutils.mo
+#usr/share/locale/eu
+#usr/share/locale/eu/LC_MESSAGES
+#usr/share/locale/eu/LC_MESSAGES/coreutils.mo
+#usr/share/locale/eu/LC_TIME
+#usr/share/locale/eu/LC_TIME/coreutils.mo
+#usr/share/locale/fi/LC_MESSAGES/coreutils.mo
+#usr/share/locale/fi/LC_TIME
+#usr/share/locale/fi/LC_TIME/coreutils.mo
+#usr/share/locale/fr/LC_MESSAGES/coreutils.mo
+#usr/share/locale/fr/LC_TIME
+#usr/share/locale/fr/LC_TIME/coreutils.mo
+#usr/share/locale/ga
+#usr/share/locale/ga/LC_MESSAGES
+#usr/share/locale/ga/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ga/LC_TIME
+#usr/share/locale/ga/LC_TIME/coreutils.mo
+#usr/share/locale/gl/LC_MESSAGES/coreutils.mo
+#usr/share/locale/gl/LC_TIME
+#usr/share/locale/gl/LC_TIME/coreutils.mo
+#usr/share/locale/hr/LC_MESSAGES/coreutils.mo
+#usr/share/locale/hr/LC_TIME
+#usr/share/locale/hr/LC_TIME/coreutils.mo
+#usr/share/locale/hu/LC_MESSAGES/coreutils.mo
+#usr/share/locale/hu/LC_TIME
+#usr/share/locale/hu/LC_TIME/coreutils.mo
+#usr/share/locale/ia
+#usr/share/locale/ia/LC_MESSAGES
+#usr/share/locale/ia/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ia/LC_TIME
+#usr/share/locale/ia/LC_TIME/coreutils.mo
+#usr/share/locale/id/LC_MESSAGES/coreutils.mo
+#usr/share/locale/id/LC_TIME
+#usr/share/locale/id/LC_TIME/coreutils.mo
+#usr/share/locale/it/LC_MESSAGES/coreutils.mo
+#usr/share/locale/it/LC_TIME
+#usr/share/locale/it/LC_TIME/coreutils.mo
+#usr/share/locale/ja/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ja/LC_TIME
+#usr/share/locale/ja/LC_TIME/coreutils.mo
+#usr/share/locale/kk
+#usr/share/locale/kk/LC_MESSAGES
+#usr/share/locale/kk/LC_MESSAGES/coreutils.mo
+#usr/share/locale/kk/LC_TIME
+#usr/share/locale/kk/LC_TIME/coreutils.mo
+#usr/share/locale/ko/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ko/LC_TIME
+#usr/share/locale/ko/LC_TIME/coreutils.mo
+#usr/share/locale/lg
+#usr/share/locale/lg/LC_MESSAGES
+#usr/share/locale/lg/LC_MESSAGES/coreutils.mo
+#usr/share/locale/lg/LC_TIME
+#usr/share/locale/lg/LC_TIME/coreutils.mo
+#usr/share/locale/lt/LC_MESSAGES/coreutils.mo
+#usr/share/locale/lt/LC_TIME
+#usr/share/locale/lt/LC_TIME/coreutils.mo
+#usr/share/locale/ms
+#usr/share/locale/ms/LC_MESSAGES
+#usr/share/locale/ms/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ms/LC_TIME
+#usr/share/locale/ms/LC_TIME/coreutils.mo
+#usr/share/locale/nb/LC_MESSAGES/coreutils.mo
+#usr/share/locale/nb/LC_TIME
+#usr/share/locale/nb/LC_TIME/coreutils.mo
+#usr/share/locale/nl/LC_MESSAGES/coreutils.mo
+#usr/share/locale/nl/LC_TIME
+#usr/share/locale/nl/LC_TIME/coreutils.mo
+#usr/share/locale/pl/LC_MESSAGES/coreutils.mo
+#usr/share/locale/pl/LC_TIME
+#usr/share/locale/pl/LC_TIME/coreutils.mo
+#usr/share/locale/pt
+#usr/share/locale/pt/LC_MESSAGES
+#usr/share/locale/pt/LC_MESSAGES/coreutils.mo
+#usr/share/locale/pt/LC_TIME
+#usr/share/locale/pt/LC_TIME/coreutils.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/coreutils.mo
+#usr/share/locale/pt_BR/LC_TIME
+#usr/share/locale/pt_BR/LC_TIME/coreutils.mo
+#usr/share/locale/ro
+#usr/share/locale/ro/LC_MESSAGES
+#usr/share/locale/ro/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ro/LC_TIME
+#usr/share/locale/ro/LC_TIME/coreutils.mo
+#usr/share/locale/ru/LC_MESSAGES/coreutils.mo
+#usr/share/locale/ru/LC_TIME
+#usr/share/locale/ru/LC_TIME/coreutils.mo
+#usr/share/locale/sk/LC_MESSAGES/coreutils.mo
+#usr/share/locale/sk/LC_TIME
+#usr/share/locale/sk/LC_TIME/coreutils.mo
+#usr/share/locale/sl
+#usr/share/locale/sl/LC_MESSAGES
+#usr/share/locale/sl/LC_MESSAGES/coreutils.mo
+#usr/share/locale/sl/LC_TIME
+#usr/share/locale/sl/LC_TIME/coreutils.mo
+#usr/share/locale/sv/LC_MESSAGES/coreutils.mo
+#usr/share/locale/sv/LC_TIME
+#usr/share/locale/sv/LC_TIME/coreutils.mo
+#usr/share/locale/tr/LC_MESSAGES/coreutils.mo
+#usr/share/locale/tr/LC_TIME
+#usr/share/locale/tr/LC_TIME/coreutils.mo
+#usr/share/locale/uk
+#usr/share/locale/uk/LC_MESSAGES
+#usr/share/locale/uk/LC_MESSAGES/coreutils.mo
+#usr/share/locale/uk/LC_TIME
+#usr/share/locale/uk/LC_TIME/coreutils.mo
+#usr/share/locale/vi/LC_MESSAGES/coreutils.mo
+#usr/share/locale/vi/LC_TIME
+#usr/share/locale/vi/LC_TIME/coreutils.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/coreutils.mo
+#usr/share/locale/zh_CN/LC_TIME
+#usr/share/locale/zh_CN/LC_TIME/coreutils.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/coreutils.mo
+#usr/share/locale/zh_TW/LC_TIME
+#usr/share/locale/zh_TW/LC_TIME/coreutils.mo
+#usr/share/man/man1/arch.1
+#usr/share/man/man1/base64.1
 #usr/share/man/man1/basename.1
 #usr/share/man/man1/cat.1
+#usr/share/man/man1/chcon.1
 #usr/share/man/man1/chroot.1
 #usr/share/man/man1/cksum.1
 #usr/share/man/man1/comm.1
@@ -103,15 +278,17 @@ usr/sbin/chroot
 #usr/share/man/man1/groups.1
 #usr/share/man/man1/head.1
 #usr/share/man/man1/hostid.1
-#usr/share/man/man1/hostname.1
 #usr/share/man/man1/id.1
 #usr/share/man/man1/join.1
 #usr/share/man/man1/link.1
 #usr/share/man/man1/logname.1
 #usr/share/man/man1/md5sum.1
+#usr/share/man/man1/mktemp.1
 #usr/share/man/man1/nice.1
 #usr/share/man/man1/nl.1
 #usr/share/man/man1/nohup.1
+#usr/share/man/man1/nproc.1
+#usr/share/man/man1/numfmt.1
 #usr/share/man/man1/od.1
 #usr/share/man/man1/paste.1
 #usr/share/man/man1/pathchk.1
@@ -122,13 +299,21 @@ usr/sbin/chroot
 #usr/share/man/man1/ptx.1
 #usr/share/man/man1/pwd.1
 #usr/share/man/man1/readlink.1
+#usr/share/man/man1/realpath.1
+#usr/share/man/man1/runcon.1
 #usr/share/man/man1/seq.1
 #usr/share/man/man1/sha1sum.1
+#usr/share/man/man1/sha224sum.1
+#usr/share/man/man1/sha256sum.1
+#usr/share/man/man1/sha384sum.1
+#usr/share/man/man1/sha512sum.1
 #usr/share/man/man1/shred.1
+#usr/share/man/man1/shuf.1
 #usr/share/man/man1/sleep.1
 #usr/share/man/man1/sort.1
 #usr/share/man/man1/split.1
 #usr/share/man/man1/stat.1
+#usr/share/man/man1/stdbuf.1
 #usr/share/man/man1/stty.1
 #usr/share/man/man1/sum.1
 #usr/share/man/man1/sync.1
@@ -136,14 +321,17 @@ usr/sbin/chroot
 #usr/share/man/man1/tail.1
 #usr/share/man/man1/tee.1
 #usr/share/man/man1/test.1
+#usr/share/man/man1/timeout.1
 #usr/share/man/man1/tr.1
 #usr/share/man/man1/true.1
+#usr/share/man/man1/truncate.1
 #usr/share/man/man1/tsort.1
 #usr/share/man/man1/tty.1
 #usr/share/man/man1/uname.1
 #usr/share/man/man1/unexpand.1
 #usr/share/man/man1/uniq.1
 #usr/share/man/man1/unlink.1
+#usr/share/man/man1/uptime.1
 #usr/share/man/man1/users.1
 #usr/share/man/man1/wc.1
 #usr/share/man/man1/who.1
diff --git a/config/rootfiles/common/dracut b/config/rootfiles/common/dracut
new file mode 100644 (file)
index 0000000..89c03a7
--- /dev/null
@@ -0,0 +1,134 @@
+etc/dracut.conf
+etc/dracut.conf.d
+usr/bin/dracut
+usr/bin/dracut-catimages
+#usr/bin/lsinitrd
+#usr/bin/mkinitrd
+usr/lib/dracut
+#usr/lib/dracut/dracut-functions
+#usr/lib/dracut/dracut-functions.sh
+#usr/lib/dracut/dracut-initramfs-restore
+#usr/lib/dracut/dracut-install
+#usr/lib/dracut/dracut-logger.sh
+#usr/lib/dracut/dracut-version.sh
+#usr/lib/dracut/dracut.conf.d
+#usr/lib/dracut/modules.d
+#usr/lib/dracut/modules.d/00bash
+#usr/lib/dracut/modules.d/00bash/module-setup.sh
+#usr/lib/dracut/modules.d/02caps
+#usr/lib/dracut/modules.d/02caps/README
+#usr/lib/dracut/modules.d/02caps/caps.sh
+#usr/lib/dracut/modules.d/02caps/module-setup.sh
+#usr/lib/dracut/modules.d/03rescue
+#usr/lib/dracut/modules.d/03rescue/module-setup.sh
+#usr/lib/dracut/modules.d/04watchdog
+#usr/lib/dracut/modules.d/04watchdog/module-setup.sh
+#usr/lib/dracut/modules.d/04watchdog/watchdog-stop.sh
+#usr/lib/dracut/modules.d/04watchdog/watchdog.sh
+#usr/lib/dracut/modules.d/10i18n
+#usr/lib/dracut/modules.d/10i18n/10-console.rules
+#usr/lib/dracut/modules.d/10i18n/README
+#usr/lib/dracut/modules.d/10i18n/console_init.sh
+#usr/lib/dracut/modules.d/10i18n/module-setup.sh
+#usr/lib/dracut/modules.d/10i18n/parse-i18n.sh
+#usr/lib/dracut/modules.d/50drm
+#usr/lib/dracut/modules.d/50drm/module-setup.sh
+#usr/lib/dracut/modules.d/90kernel-modules
+#usr/lib/dracut/modules.d/90kernel-modules/insmodpost.sh
+#usr/lib/dracut/modules.d/90kernel-modules/module-setup.sh
+#usr/lib/dracut/modules.d/90kernel-modules/parse-kernel.sh
+#usr/lib/dracut/modules.d/90mdraid
+#usr/lib/dracut/modules.d/90mdraid/59-persistent-storage-md.rules
+#usr/lib/dracut/modules.d/90mdraid/65-md-incremental-imsm.rules
+#usr/lib/dracut/modules.d/90mdraid/md-noddf.sh
+#usr/lib/dracut/modules.d/90mdraid/md-noimsm.sh
+#usr/lib/dracut/modules.d/90mdraid/md-shutdown.sh
+#usr/lib/dracut/modules.d/90mdraid/mdmon-pre-shutdown.sh
+#usr/lib/dracut/modules.d/90mdraid/mdmon-pre-udev.sh
+#usr/lib/dracut/modules.d/90mdraid/mdraid-cleanup.sh
+#usr/lib/dracut/modules.d/90mdraid/mdraid-needshutdown.sh
+#usr/lib/dracut/modules.d/90mdraid/mdraid-waitclean.sh
+#usr/lib/dracut/modules.d/90mdraid/mdraid_start.sh
+#usr/lib/dracut/modules.d/90mdraid/module-setup.sh
+#usr/lib/dracut/modules.d/90mdraid/parse-md.sh
+#usr/lib/dracut/modules.d/95debug
+#usr/lib/dracut/modules.d/95debug/module-setup.sh
+#usr/lib/dracut/modules.d/95fstab-sys
+#usr/lib/dracut/modules.d/95fstab-sys/module-setup.sh
+#usr/lib/dracut/modules.d/95fstab-sys/mount-sys.sh
+#usr/lib/dracut/modules.d/95rootfs-block
+#usr/lib/dracut/modules.d/95rootfs-block/block-genrules.sh
+#usr/lib/dracut/modules.d/95rootfs-block/module-setup.sh
+#usr/lib/dracut/modules.d/95rootfs-block/mount-root.sh
+#usr/lib/dracut/modules.d/95rootfs-block/parse-block.sh
+#usr/lib/dracut/modules.d/95rootfs-block/rootfallback.sh
+#usr/lib/dracut/modules.d/95terminfo
+#usr/lib/dracut/modules.d/95terminfo/module-setup.sh
+#usr/lib/dracut/modules.d/95udev-rules
+#usr/lib/dracut/modules.d/95udev-rules/59-persistent-storage.rules
+#usr/lib/dracut/modules.d/95udev-rules/61-persistent-storage.rules
+#usr/lib/dracut/modules.d/95udev-rules/load-modules.sh
+#usr/lib/dracut/modules.d/95udev-rules/module-setup.sh
+#usr/lib/dracut/modules.d/95virtfs
+#usr/lib/dracut/modules.d/95virtfs/module-setup.sh
+#usr/lib/dracut/modules.d/95virtfs/mount-virtfs.sh
+#usr/lib/dracut/modules.d/95virtfs/parse-virtfs.sh
+#usr/lib/dracut/modules.d/98integrity
+#usr/lib/dracut/modules.d/98integrity/README
+#usr/lib/dracut/modules.d/98integrity/evm-enable.sh
+#usr/lib/dracut/modules.d/98integrity/ima-policy-load.sh
+#usr/lib/dracut/modules.d/98integrity/module-setup.sh
+#usr/lib/dracut/modules.d/98pollcdrom
+#usr/lib/dracut/modules.d/98pollcdrom/module-setup.sh
+#usr/lib/dracut/modules.d/98pollcdrom/pollcdrom.sh
+#usr/lib/dracut/modules.d/98syslog
+#usr/lib/dracut/modules.d/98syslog/README
+#usr/lib/dracut/modules.d/98syslog/module-setup.sh
+#usr/lib/dracut/modules.d/98syslog/parse-syslog-opts.sh
+#usr/lib/dracut/modules.d/98syslog/rsyslog.conf
+#usr/lib/dracut/modules.d/98syslog/rsyslogd-start.sh
+#usr/lib/dracut/modules.d/98syslog/rsyslogd-stop.sh
+#usr/lib/dracut/modules.d/98syslog/syslog-cleanup.sh
+#usr/lib/dracut/modules.d/98syslog/syslog-genrules.sh
+#usr/lib/dracut/modules.d/99base
+#usr/lib/dracut/modules.d/99base/dracut-lib.sh
+#usr/lib/dracut/modules.d/99base/init.sh
+#usr/lib/dracut/modules.d/99base/initqueue.sh
+#usr/lib/dracut/modules.d/99base/loginit.sh
+#usr/lib/dracut/modules.d/99base/module-setup.sh
+#usr/lib/dracut/modules.d/99base/parse-root-opts.sh
+#usr/lib/dracut/modules.d/99base/rdsosreport.sh
+#usr/lib/dracut/modules.d/99fs-lib
+#usr/lib/dracut/modules.d/99fs-lib/fs-lib.sh
+#usr/lib/dracut/modules.d/99fs-lib/module-setup.sh
+#usr/lib/dracut/modules.d/99img-lib
+#usr/lib/dracut/modules.d/99img-lib/img-lib.sh
+#usr/lib/dracut/modules.d/99img-lib/module-setup.sh
+#usr/lib/dracut/modules.d/99shutdown
+#usr/lib/dracut/modules.d/99shutdown/module-setup.sh
+#usr/lib/dracut/modules.d/99shutdown/shutdown.sh
+#usr/lib/dracut/skipcpio
+#usr/lib/kernel
+#usr/lib/kernel/install.d
+#usr/lib/kernel/install.d/50-dracut.install
+#usr/lib/kernel/install.d/51-dracut-rescue.install
+#usr/share/bash-completion/completions/dracut
+#usr/share/bash-completion/completions/lsinitrd
+#usr/share/man/man1/lsinitrd.1
+#usr/share/man/man5/dracut.conf.5
+#usr/share/man/man7/dracut.bootup.7
+#usr/share/man/man7/dracut.cmdline.7
+#usr/share/man/man7/dracut.kernel.7
+#usr/share/man/man7/dracut.modules.7
+#usr/share/man/man8/dracut-catimages.8
+#usr/share/man/man8/dracut-cmdline.service.8
+#usr/share/man/man8/dracut-initqueue.service.8
+#usr/share/man/man8/dracut-mount.service.8
+#usr/share/man/man8/dracut-pre-mount.service.8
+#usr/share/man/man8/dracut-pre-pivot.service.8
+#usr/share/man/man8/dracut-pre-trigger.service.8
+#usr/share/man/man8/dracut-pre-udev.service.8
+#usr/share/man/man8/dracut-shutdown.service.8
+#usr/share/man/man8/dracut.8
+#usr/share/man/man8/mkinitrd-suse.8
+#usr/share/man/man8/mkinitrd.8
index b3a1c49606f1817aeffd974604200f0585532518..89f68a76ccf391f353f147c0df31cfc0519b93bd 100644 (file)
@@ -11,7 +11,6 @@ etc/fcron.hourly/info.txt
 etc/fcron.minutely/info.txt
 #etc/fcron.monthly
 etc/fcron.monthly/info.txt
-#etc/fcron.weekly
 etc/fcron.weekly/info.txt
 usr/bin/fcronsighup
 usr/bin/fcrontab
index 13cae26eb880da30124d918248af1c0ba300244f..ac4fffe95161109fc79d92f01c2551ec46d61f65 100644 (file)
@@ -1,3 +1,5 @@
+#etc/fcron.weekly
+etc/fcron.weekly/updatedb
 bin/find
 usr/bin/locate
 #usr/bin/oldfind
index 7c59b98f7373fcf016cf5a883291089744c49cef..83cbfc4508e5f75896f42b2f251c3aa854882494 100644 (file)
@@ -5,5 +5,6 @@ bin/nisdomainname
 bin/ypdomainname
 #usr/share/man/man1/dnsdomainname.1
 #usr/share/man/man1/domainname.1
+#usr/share/man/man1/hostname.1
 #usr/share/man/man1/nisdomainname.1
 #usr/share/man/man1/ypdomainname.1
diff --git a/config/rootfiles/common/i586/dracut b/config/rootfiles/common/i586/dracut
deleted file mode 100644 (file)
index 27d8243..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#boot/ipfirerd-KVER.img
-etc/dracut.conf
-etc/dracut.conf.d
-#etc/dracut.conf.d/dracut.conf
-sbin/dracut
-sbin/dracut-catimages
-sbin/dracut-gencmdline
-sbin/lsinitrd
-sbin/mkinitrd
-usr/share/dracut
-usr/share/dracut/dracut-functions
-usr/share/dracut/modules.d
-usr/share/dracut/modules.d/60xen
-usr/share/dracut/modules.d/60xen/check
-usr/share/dracut/modules.d/60xen/install
-usr/share/dracut/modules.d/60xen/installkernel
-usr/share/dracut/modules.d/60xen/xen-pre-udev.sh
-usr/share/dracut/modules.d/90kernel-modules
-usr/share/dracut/modules.d/90kernel-modules/install
-usr/share/dracut/modules.d/90kernel-modules/installkernel
-usr/share/dracut/modules.d/90kernel-modules/parse-kernel.sh
-usr/share/dracut/modules.d/95debug
-usr/share/dracut/modules.d/95debug/check
-usr/share/dracut/modules.d/95debug/install
-usr/share/dracut/modules.d/95rootfs-block
-usr/share/dracut/modules.d/95rootfs-block/block-genrules.sh
-usr/share/dracut/modules.d/95rootfs-block/install
-usr/share/dracut/modules.d/95rootfs-block/mount-root.sh
-usr/share/dracut/modules.d/95rootfs-block/parse-block.sh
-usr/share/dracut/modules.d/95terminfo
-usr/share/dracut/modules.d/95terminfo/install
-usr/share/dracut/modules.d/95udev-rules
-usr/share/dracut/modules.d/95udev-rules/01-ignore.rules
-usr/share/dracut/modules.d/95udev-rules/59-persistent-storage-volid.rules
-usr/share/dracut/modules.d/95udev-rules/59-persistent-storage.rules
-usr/share/dracut/modules.d/95udev-rules/61-persistent-storage.rules
-usr/share/dracut/modules.d/95udev-rules/install
-usr/share/dracut/modules.d/95udev-rules/load-modules.sh
-usr/share/dracut/modules.d/98syslog
-usr/share/dracut/modules.d/98syslog/README
-usr/share/dracut/modules.d/98syslog/check
-usr/share/dracut/modules.d/98syslog/install
-usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh
-usr/share/dracut/modules.d/98syslog/rsyslog.conf
-usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh
-usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh
-usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh
-usr/share/dracut/modules.d/98syslog/syslog-genrules.sh
-usr/share/dracut/modules.d/99base
-usr/share/dracut/modules.d/99base/check
-usr/share/dracut/modules.d/99base/dracut-lib.sh
-usr/share/dracut/modules.d/99base/init
-usr/share/dracut/modules.d/99base/initqueue
-#usr/share/dracut/modules.d/99base/init~
-usr/share/dracut/modules.d/99base/install
-usr/share/dracut/modules.d/99base/loginit
-usr/share/dracut/modules.d/99base/parse-blacklist.sh
-usr/share/dracut/modules.d/99base/parse-root-opts.sh
-#usr/share/man/man5/dracut.conf.5
-#usr/share/man/man8/dracut-catimages.8
-#usr/share/man/man8/dracut-gencmdline.8
-#usr/share/man/man8/dracut.8
-sbin/switch_root
index de6a53b5cff18f3432acf5d080e0bc25034b758e..53301441039e138cc0f25ee02dc47ecbbc0d46df 100644 (file)
 #boot/grub
-boot/grub/default
-boot/grub/grub.conf
-boot/grub/ipfire.xpm.gz
-boot/grub/stage1
-boot/grub/stage2
-#usr/bin/mbchk
+boot/grub/grub.cfg
+#etc/bash_completion.d
+#etc/bash_completion.d/grub
+etc/default/grub
+etc/grub.d
+etc/grub.d/00_header
+etc/grub.d/10_linux
+etc/grub.d/20_linux_xen
+etc/grub.d/30_os-prober
+etc/grub.d/40_custom
+etc/grub.d/41_custom
+etc/grub.d/README
+etc/grub2.cfg
+usr/bin/grub-editenv
+usr/bin/grub-fstest
+usr/bin/grub-kbdcomp
+usr/bin/grub-menulst2cfg
+usr/bin/grub-mkimage
+usr/bin/grub-mklayout
+usr/bin/grub-mkpasswd-pbkdf2
+usr/bin/grub-mkrelpath
+usr/bin/grub-mkrescue
+usr/bin/grub-mkstandalone
+usr/bin/grub-script-check
 usr/lib/grub
-#usr/lib/grub/i386-pc
-#usr/lib/grub/i386-pc/e2fs_stage1_5
-#usr/lib/grub/i386-pc/fat_stage1_5
-#usr/lib/grub/i386-pc/ffs_stage1_5
-#usr/lib/grub/i386-pc/iso9660_stage1_5
-#usr/lib/grub/i386-pc/jfs_stage1_5
-#usr/lib/grub/i386-pc/minix_stage1_5
-#usr/lib/grub/i386-pc/reiserfs_stage1_5
-#usr/lib/grub/i386-pc/stage1
-#usr/lib/grub/i386-pc/stage2
-#usr/lib/grub/i386-pc/stage2_eltorito
-#usr/lib/grub/i386-pc/ufs2_stage1_5
-#usr/lib/grub/i386-pc/vstafs_stage1_5
-#usr/lib/grub/i386-pc/xfs_stage1_5
-usr/sbin/grub
+usr/lib/grub/i386-pc
+usr/lib/grub/i386-pc/acpi.mod
+usr/lib/grub/i386-pc/acpi.module
+usr/lib/grub/i386-pc/adler32.mod
+usr/lib/grub/i386-pc/adler32.module
+usr/lib/grub/i386-pc/affs.mod
+usr/lib/grub/i386-pc/affs.module
+usr/lib/grub/i386-pc/afs.mod
+usr/lib/grub/i386-pc/afs.module
+usr/lib/grub/i386-pc/ahci.mod
+usr/lib/grub/i386-pc/ahci.module
+usr/lib/grub/i386-pc/all_video.mod
+usr/lib/grub/i386-pc/all_video.module
+usr/lib/grub/i386-pc/aout.mod
+usr/lib/grub/i386-pc/aout.module
+usr/lib/grub/i386-pc/at_keyboard.mod
+usr/lib/grub/i386-pc/at_keyboard.module
+usr/lib/grub/i386-pc/ata.mod
+usr/lib/grub/i386-pc/ata.module
+usr/lib/grub/i386-pc/backtrace.mod
+usr/lib/grub/i386-pc/backtrace.module
+usr/lib/grub/i386-pc/bfs.mod
+usr/lib/grub/i386-pc/bfs.module
+usr/lib/grub/i386-pc/biosdisk.mod
+usr/lib/grub/i386-pc/biosdisk.module
+usr/lib/grub/i386-pc/bitmap.mod
+usr/lib/grub/i386-pc/bitmap.module
+usr/lib/grub/i386-pc/bitmap_scale.mod
+usr/lib/grub/i386-pc/bitmap_scale.module
+usr/lib/grub/i386-pc/blocklist.mod
+usr/lib/grub/i386-pc/blocklist.module
+usr/lib/grub/i386-pc/boot.image
+usr/lib/grub/i386-pc/boot.img
+usr/lib/grub/i386-pc/boot.mod
+usr/lib/grub/i386-pc/boot.module
+usr/lib/grub/i386-pc/bsd.mod
+usr/lib/grub/i386-pc/bsd.module
+usr/lib/grub/i386-pc/btrfs.mod
+usr/lib/grub/i386-pc/btrfs.module
+usr/lib/grub/i386-pc/bufio.mod
+usr/lib/grub/i386-pc/bufio.module
+usr/lib/grub/i386-pc/cat.mod
+usr/lib/grub/i386-pc/cat.module
+usr/lib/grub/i386-pc/cdboot.image
+usr/lib/grub/i386-pc/cdboot.img
+usr/lib/grub/i386-pc/chain.mod
+usr/lib/grub/i386-pc/chain.module
+usr/lib/grub/i386-pc/cmostest.mod
+usr/lib/grub/i386-pc/cmostest.module
+usr/lib/grub/i386-pc/cmp.mod
+usr/lib/grub/i386-pc/cmp.module
+usr/lib/grub/i386-pc/command.lst
+usr/lib/grub/i386-pc/config.h
+usr/lib/grub/i386-pc/configfile.mod
+usr/lib/grub/i386-pc/configfile.module
+usr/lib/grub/i386-pc/cpio.mod
+usr/lib/grub/i386-pc/cpio.module
+usr/lib/grub/i386-pc/cpio_be.mod
+usr/lib/grub/i386-pc/cpio_be.module
+usr/lib/grub/i386-pc/cpuid.mod
+usr/lib/grub/i386-pc/cpuid.module
+usr/lib/grub/i386-pc/crc64.mod
+usr/lib/grub/i386-pc/crc64.module
+usr/lib/grub/i386-pc/crypto.lst
+usr/lib/grub/i386-pc/crypto.mod
+usr/lib/grub/i386-pc/crypto.module
+usr/lib/grub/i386-pc/cryptodisk.mod
+usr/lib/grub/i386-pc/cryptodisk.module
+usr/lib/grub/i386-pc/cs5536.mod
+usr/lib/grub/i386-pc/cs5536.module
+usr/lib/grub/i386-pc/date.mod
+usr/lib/grub/i386-pc/date.module
+usr/lib/grub/i386-pc/datehook.mod
+usr/lib/grub/i386-pc/datehook.module
+usr/lib/grub/i386-pc/datetime.mod
+usr/lib/grub/i386-pc/datetime.module
+usr/lib/grub/i386-pc/diskboot.image
+usr/lib/grub/i386-pc/diskboot.img
+usr/lib/grub/i386-pc/diskfilter.mod
+usr/lib/grub/i386-pc/diskfilter.module
+usr/lib/grub/i386-pc/dm_nv.mod
+usr/lib/grub/i386-pc/dm_nv.module
+usr/lib/grub/i386-pc/drivemap.mod
+usr/lib/grub/i386-pc/drivemap.module
+usr/lib/grub/i386-pc/echo.mod
+usr/lib/grub/i386-pc/echo.module
+usr/lib/grub/i386-pc/efiemu.mod
+usr/lib/grub/i386-pc/efiemu.module
+usr/lib/grub/i386-pc/ehci.mod
+usr/lib/grub/i386-pc/ehci.module
+usr/lib/grub/i386-pc/elf.mod
+usr/lib/grub/i386-pc/elf.module
+usr/lib/grub/i386-pc/exfat.mod
+usr/lib/grub/i386-pc/exfat.module
+usr/lib/grub/i386-pc/exfctest.mod
+usr/lib/grub/i386-pc/exfctest.module
+usr/lib/grub/i386-pc/ext2.mod
+usr/lib/grub/i386-pc/ext2.module
+usr/lib/grub/i386-pc/extcmd.mod
+usr/lib/grub/i386-pc/extcmd.module
+usr/lib/grub/i386-pc/fat.mod
+usr/lib/grub/i386-pc/fat.module
+usr/lib/grub/i386-pc/font.mod
+usr/lib/grub/i386-pc/font.module
+usr/lib/grub/i386-pc/freedos.mod
+usr/lib/grub/i386-pc/freedos.module
+usr/lib/grub/i386-pc/fs.lst
+usr/lib/grub/i386-pc/fshelp.mod
+usr/lib/grub/i386-pc/fshelp.module
+usr/lib/grub/i386-pc/functional_test.mod
+usr/lib/grub/i386-pc/functional_test.module
+usr/lib/grub/i386-pc/gcry_arcfour.mod
+usr/lib/grub/i386-pc/gcry_arcfour.module
+usr/lib/grub/i386-pc/gcry_blowfish.mod
+usr/lib/grub/i386-pc/gcry_blowfish.module
+usr/lib/grub/i386-pc/gcry_camellia.mod
+usr/lib/grub/i386-pc/gcry_camellia.module
+usr/lib/grub/i386-pc/gcry_cast5.mod
+usr/lib/grub/i386-pc/gcry_cast5.module
+usr/lib/grub/i386-pc/gcry_crc.mod
+usr/lib/grub/i386-pc/gcry_crc.module
+usr/lib/grub/i386-pc/gcry_des.mod
+usr/lib/grub/i386-pc/gcry_des.module
+usr/lib/grub/i386-pc/gcry_md4.mod
+usr/lib/grub/i386-pc/gcry_md4.module
+usr/lib/grub/i386-pc/gcry_md5.mod
+usr/lib/grub/i386-pc/gcry_md5.module
+usr/lib/grub/i386-pc/gcry_rfc2268.mod
+usr/lib/grub/i386-pc/gcry_rfc2268.module
+usr/lib/grub/i386-pc/gcry_rijndael.mod
+usr/lib/grub/i386-pc/gcry_rijndael.module
+usr/lib/grub/i386-pc/gcry_rmd160.mod
+usr/lib/grub/i386-pc/gcry_rmd160.module
+usr/lib/grub/i386-pc/gcry_seed.mod
+usr/lib/grub/i386-pc/gcry_seed.module
+usr/lib/grub/i386-pc/gcry_serpent.mod
+usr/lib/grub/i386-pc/gcry_serpent.module
+usr/lib/grub/i386-pc/gcry_sha1.mod
+usr/lib/grub/i386-pc/gcry_sha1.module
+usr/lib/grub/i386-pc/gcry_sha256.mod
+usr/lib/grub/i386-pc/gcry_sha256.module
+usr/lib/grub/i386-pc/gcry_sha512.mod
+usr/lib/grub/i386-pc/gcry_sha512.module
+usr/lib/grub/i386-pc/gcry_tiger.mod
+usr/lib/grub/i386-pc/gcry_tiger.module
+usr/lib/grub/i386-pc/gcry_twofish.mod
+usr/lib/grub/i386-pc/gcry_twofish.module
+usr/lib/grub/i386-pc/gcry_whirlpool.mod
+usr/lib/grub/i386-pc/gcry_whirlpool.module
+usr/lib/grub/i386-pc/gdb.mod
+usr/lib/grub/i386-pc/gdb.module
+usr/lib/grub/i386-pc/gdb_grub
+usr/lib/grub/i386-pc/geli.mod
+usr/lib/grub/i386-pc/geli.module
+usr/lib/grub/i386-pc/gettext.mod
+usr/lib/grub/i386-pc/gettext.module
+usr/lib/grub/i386-pc/gfxmenu.mod
+usr/lib/grub/i386-pc/gfxmenu.module
+usr/lib/grub/i386-pc/gfxterm.mod
+usr/lib/grub/i386-pc/gfxterm.module
+usr/lib/grub/i386-pc/gmodule.pl
+usr/lib/grub/i386-pc/gptsync.mod
+usr/lib/grub/i386-pc/gptsync.module
+usr/lib/grub/i386-pc/gzio.mod
+usr/lib/grub/i386-pc/gzio.module
+usr/lib/grub/i386-pc/halt.mod
+usr/lib/grub/i386-pc/halt.module
+usr/lib/grub/i386-pc/hashsum.mod
+usr/lib/grub/i386-pc/hashsum.module
+usr/lib/grub/i386-pc/hdparm.mod
+usr/lib/grub/i386-pc/hdparm.module
+usr/lib/grub/i386-pc/hello.mod
+usr/lib/grub/i386-pc/hello.module
+usr/lib/grub/i386-pc/help.mod
+usr/lib/grub/i386-pc/help.module
+usr/lib/grub/i386-pc/hexdump.mod
+usr/lib/grub/i386-pc/hexdump.module
+usr/lib/grub/i386-pc/hfs.mod
+usr/lib/grub/i386-pc/hfs.module
+usr/lib/grub/i386-pc/hfsplus.mod
+usr/lib/grub/i386-pc/hfsplus.module
+usr/lib/grub/i386-pc/http.mod
+usr/lib/grub/i386-pc/http.module
+usr/lib/grub/i386-pc/iorw.mod
+usr/lib/grub/i386-pc/iorw.module
+usr/lib/grub/i386-pc/iso9660.mod
+usr/lib/grub/i386-pc/iso9660.module
+usr/lib/grub/i386-pc/jfs.mod
+usr/lib/grub/i386-pc/jfs.module
+usr/lib/grub/i386-pc/jpeg.mod
+usr/lib/grub/i386-pc/jpeg.module
+usr/lib/grub/i386-pc/kernel.exec
+usr/lib/grub/i386-pc/kernel.img
+usr/lib/grub/i386-pc/keylayouts.mod
+usr/lib/grub/i386-pc/keylayouts.module
+usr/lib/grub/i386-pc/keystatus.mod
+usr/lib/grub/i386-pc/keystatus.module
+usr/lib/grub/i386-pc/ldm.mod
+usr/lib/grub/i386-pc/ldm.module
+usr/lib/grub/i386-pc/legacycfg.mod
+usr/lib/grub/i386-pc/legacycfg.module
+usr/lib/grub/i386-pc/linux.mod
+usr/lib/grub/i386-pc/linux.module
+usr/lib/grub/i386-pc/linux16.mod
+usr/lib/grub/i386-pc/linux16.module
+usr/lib/grub/i386-pc/lnxboot.image
+usr/lib/grub/i386-pc/lnxboot.img
+usr/lib/grub/i386-pc/loadenv.mod
+usr/lib/grub/i386-pc/loadenv.module
+usr/lib/grub/i386-pc/loopback.mod
+usr/lib/grub/i386-pc/loopback.module
+usr/lib/grub/i386-pc/ls.mod
+usr/lib/grub/i386-pc/ls.module
+usr/lib/grub/i386-pc/lsacpi.mod
+usr/lib/grub/i386-pc/lsacpi.module
+usr/lib/grub/i386-pc/lsapm.mod
+usr/lib/grub/i386-pc/lsapm.module
+usr/lib/grub/i386-pc/lsmmap.mod
+usr/lib/grub/i386-pc/lsmmap.module
+usr/lib/grub/i386-pc/lspci.mod
+usr/lib/grub/i386-pc/lspci.module
+usr/lib/grub/i386-pc/luks.mod
+usr/lib/grub/i386-pc/luks.module
+usr/lib/grub/i386-pc/lvm.mod
+usr/lib/grub/i386-pc/lvm.module
+usr/lib/grub/i386-pc/lzma_decompress.image
+usr/lib/grub/i386-pc/lzma_decompress.img
+usr/lib/grub/i386-pc/lzopio.mod
+usr/lib/grub/i386-pc/lzopio.module
+usr/lib/grub/i386-pc/mdraid09.mod
+usr/lib/grub/i386-pc/mdraid09.module
+usr/lib/grub/i386-pc/mdraid09_be.mod
+usr/lib/grub/i386-pc/mdraid09_be.module
+usr/lib/grub/i386-pc/mdraid1x.mod
+usr/lib/grub/i386-pc/mdraid1x.module
+usr/lib/grub/i386-pc/memdisk.mod
+usr/lib/grub/i386-pc/memdisk.module
+usr/lib/grub/i386-pc/memrw.mod
+usr/lib/grub/i386-pc/memrw.module
+usr/lib/grub/i386-pc/minicmd.mod
+usr/lib/grub/i386-pc/minicmd.module
+usr/lib/grub/i386-pc/minix.mod
+usr/lib/grub/i386-pc/minix.module
+usr/lib/grub/i386-pc/minix2.mod
+usr/lib/grub/i386-pc/minix2.module
+usr/lib/grub/i386-pc/minix2_be.mod
+usr/lib/grub/i386-pc/minix2_be.module
+usr/lib/grub/i386-pc/minix3.mod
+usr/lib/grub/i386-pc/minix3.module
+usr/lib/grub/i386-pc/minix3_be.mod
+usr/lib/grub/i386-pc/minix3_be.module
+usr/lib/grub/i386-pc/minix_be.mod
+usr/lib/grub/i386-pc/minix_be.module
+usr/lib/grub/i386-pc/mmap.mod
+usr/lib/grub/i386-pc/mmap.module
+usr/lib/grub/i386-pc/moddep.lst
+usr/lib/grub/i386-pc/modinfo.sh
+usr/lib/grub/i386-pc/msdospart.mod
+usr/lib/grub/i386-pc/msdospart.module
+usr/lib/grub/i386-pc/multiboot.mod
+usr/lib/grub/i386-pc/multiboot.module
+usr/lib/grub/i386-pc/multiboot2.mod
+usr/lib/grub/i386-pc/multiboot2.module
+usr/lib/grub/i386-pc/net.mod
+usr/lib/grub/i386-pc/net.module
+usr/lib/grub/i386-pc/newc.mod
+usr/lib/grub/i386-pc/newc.module
+usr/lib/grub/i386-pc/nilfs2.mod
+usr/lib/grub/i386-pc/nilfs2.module
+usr/lib/grub/i386-pc/normal.mod
+usr/lib/grub/i386-pc/normal.module
+usr/lib/grub/i386-pc/ntfs.mod
+usr/lib/grub/i386-pc/ntfs.module
+usr/lib/grub/i386-pc/ntfscomp.mod
+usr/lib/grub/i386-pc/ntfscomp.module
+usr/lib/grub/i386-pc/ntldr.mod
+usr/lib/grub/i386-pc/ntldr.module
+usr/lib/grub/i386-pc/odc.mod
+usr/lib/grub/i386-pc/odc.module
+usr/lib/grub/i386-pc/ohci.mod
+usr/lib/grub/i386-pc/ohci.module
+usr/lib/grub/i386-pc/part_acorn.mod
+usr/lib/grub/i386-pc/part_acorn.module
+usr/lib/grub/i386-pc/part_amiga.mod
+usr/lib/grub/i386-pc/part_amiga.module
+usr/lib/grub/i386-pc/part_apple.mod
+usr/lib/grub/i386-pc/part_apple.module
+usr/lib/grub/i386-pc/part_bsd.mod
+usr/lib/grub/i386-pc/part_bsd.module
+usr/lib/grub/i386-pc/part_dvh.mod
+usr/lib/grub/i386-pc/part_dvh.module
+usr/lib/grub/i386-pc/part_gpt.mod
+usr/lib/grub/i386-pc/part_gpt.module
+usr/lib/grub/i386-pc/part_msdos.mod
+usr/lib/grub/i386-pc/part_msdos.module
+usr/lib/grub/i386-pc/part_plan.mod
+usr/lib/grub/i386-pc/part_plan.module
+usr/lib/grub/i386-pc/part_sun.mod
+usr/lib/grub/i386-pc/part_sun.module
+usr/lib/grub/i386-pc/part_sunpc.mod
+usr/lib/grub/i386-pc/part_sunpc.module
+usr/lib/grub/i386-pc/partmap.lst
+usr/lib/grub/i386-pc/parttool.lst
+usr/lib/grub/i386-pc/parttool.mod
+usr/lib/grub/i386-pc/parttool.module
+usr/lib/grub/i386-pc/password.mod
+usr/lib/grub/i386-pc/password.module
+usr/lib/grub/i386-pc/password_pbkdf2.mod
+usr/lib/grub/i386-pc/password_pbkdf2.module
+usr/lib/grub/i386-pc/pata.mod
+usr/lib/grub/i386-pc/pata.module
+usr/lib/grub/i386-pc/pbkdf2.mod
+usr/lib/grub/i386-pc/pbkdf2.module
+usr/lib/grub/i386-pc/pci.mod
+usr/lib/grub/i386-pc/pci.module
+usr/lib/grub/i386-pc/plan9.mod
+usr/lib/grub/i386-pc/plan9.module
+usr/lib/grub/i386-pc/play.mod
+usr/lib/grub/i386-pc/play.module
+usr/lib/grub/i386-pc/png.mod
+usr/lib/grub/i386-pc/png.module
+usr/lib/grub/i386-pc/priority_queue.mod
+usr/lib/grub/i386-pc/priority_queue.module
+usr/lib/grub/i386-pc/probe.mod
+usr/lib/grub/i386-pc/probe.module
+usr/lib/grub/i386-pc/pxe.mod
+usr/lib/grub/i386-pc/pxe.module
+usr/lib/grub/i386-pc/pxeboot.image
+usr/lib/grub/i386-pc/pxeboot.img
+usr/lib/grub/i386-pc/pxechain.mod
+usr/lib/grub/i386-pc/pxechain.module
+usr/lib/grub/i386-pc/raid5rec.mod
+usr/lib/grub/i386-pc/raid5rec.module
+usr/lib/grub/i386-pc/raid6rec.mod
+usr/lib/grub/i386-pc/raid6rec.module
+usr/lib/grub/i386-pc/read.mod
+usr/lib/grub/i386-pc/read.module
+usr/lib/grub/i386-pc/reboot.mod
+usr/lib/grub/i386-pc/reboot.module
+usr/lib/grub/i386-pc/regexp.mod
+usr/lib/grub/i386-pc/regexp.module
+usr/lib/grub/i386-pc/reiserfs.mod
+usr/lib/grub/i386-pc/reiserfs.module
+usr/lib/grub/i386-pc/relocator.mod
+usr/lib/grub/i386-pc/relocator.module
+usr/lib/grub/i386-pc/romfs.mod
+usr/lib/grub/i386-pc/romfs.module
+usr/lib/grub/i386-pc/scsi.mod
+usr/lib/grub/i386-pc/scsi.module
+usr/lib/grub/i386-pc/search.mod
+usr/lib/grub/i386-pc/search.module
+usr/lib/grub/i386-pc/search_fs_file.mod
+usr/lib/grub/i386-pc/search_fs_file.module
+usr/lib/grub/i386-pc/search_fs_uuid.mod
+usr/lib/grub/i386-pc/search_fs_uuid.module
+usr/lib/grub/i386-pc/search_label.mod
+usr/lib/grub/i386-pc/search_label.module
+usr/lib/grub/i386-pc/sendkey.mod
+usr/lib/grub/i386-pc/sendkey.module
+usr/lib/grub/i386-pc/serial.mod
+usr/lib/grub/i386-pc/serial.module
+usr/lib/grub/i386-pc/setjmp.mod
+usr/lib/grub/i386-pc/setjmp.module
+usr/lib/grub/i386-pc/setpci.mod
+usr/lib/grub/i386-pc/setpci.module
+usr/lib/grub/i386-pc/sfs.mod
+usr/lib/grub/i386-pc/sfs.module
+usr/lib/grub/i386-pc/sleep.mod
+usr/lib/grub/i386-pc/sleep.module
+usr/lib/grub/i386-pc/squash4.mod
+usr/lib/grub/i386-pc/squash4.module
+usr/lib/grub/i386-pc/tar.mod
+usr/lib/grub/i386-pc/tar.module
+usr/lib/grub/i386-pc/terminal.lst
+usr/lib/grub/i386-pc/terminal.mod
+usr/lib/grub/i386-pc/terminal.module
+usr/lib/grub/i386-pc/terminfo.mod
+usr/lib/grub/i386-pc/terminfo.module
+usr/lib/grub/i386-pc/test.mod
+usr/lib/grub/i386-pc/test.module
+usr/lib/grub/i386-pc/test_blockarg.mod
+usr/lib/grub/i386-pc/test_blockarg.module
+usr/lib/grub/i386-pc/testload.mod
+usr/lib/grub/i386-pc/testload.module
+usr/lib/grub/i386-pc/tftp.mod
+usr/lib/grub/i386-pc/tftp.module
+usr/lib/grub/i386-pc/tga.mod
+usr/lib/grub/i386-pc/tga.module
+usr/lib/grub/i386-pc/time.mod
+usr/lib/grub/i386-pc/time.module
+usr/lib/grub/i386-pc/trig.mod
+usr/lib/grub/i386-pc/trig.module
+usr/lib/grub/i386-pc/true.mod
+usr/lib/grub/i386-pc/true.module
+usr/lib/grub/i386-pc/udf.mod
+usr/lib/grub/i386-pc/udf.module
+usr/lib/grub/i386-pc/ufs1.mod
+usr/lib/grub/i386-pc/ufs1.module
+usr/lib/grub/i386-pc/ufs2.mod
+usr/lib/grub/i386-pc/ufs2.module
+usr/lib/grub/i386-pc/uhci.mod
+usr/lib/grub/i386-pc/uhci.module
+usr/lib/grub/i386-pc/usb.mod
+usr/lib/grub/i386-pc/usb.module
+usr/lib/grub/i386-pc/usb_keyboard.mod
+usr/lib/grub/i386-pc/usb_keyboard.module
+usr/lib/grub/i386-pc/usbms.mod
+usr/lib/grub/i386-pc/usbms.module
+usr/lib/grub/i386-pc/usbserial_common.mod
+usr/lib/grub/i386-pc/usbserial_common.module
+usr/lib/grub/i386-pc/usbserial_ftdi.mod
+usr/lib/grub/i386-pc/usbserial_ftdi.module
+usr/lib/grub/i386-pc/usbserial_pl2303.mod
+usr/lib/grub/i386-pc/usbserial_pl2303.module
+usr/lib/grub/i386-pc/usbtest.mod
+usr/lib/grub/i386-pc/usbtest.module
+usr/lib/grub/i386-pc/vbe.mod
+usr/lib/grub/i386-pc/vbe.module
+usr/lib/grub/i386-pc/vga.mod
+usr/lib/grub/i386-pc/vga.module
+usr/lib/grub/i386-pc/vga_text.mod
+usr/lib/grub/i386-pc/vga_text.module
+usr/lib/grub/i386-pc/video.lst
+usr/lib/grub/i386-pc/video.mod
+usr/lib/grub/i386-pc/video.module
+usr/lib/grub/i386-pc/video_bochs.mod
+usr/lib/grub/i386-pc/video_bochs.module
+usr/lib/grub/i386-pc/video_cirrus.mod
+usr/lib/grub/i386-pc/video_cirrus.module
+usr/lib/grub/i386-pc/video_fb.mod
+usr/lib/grub/i386-pc/video_fb.module
+usr/lib/grub/i386-pc/videoinfo.mod
+usr/lib/grub/i386-pc/videoinfo.module
+usr/lib/grub/i386-pc/videotest.mod
+usr/lib/grub/i386-pc/videotest.module
+usr/lib/grub/i386-pc/xfs.mod
+usr/lib/grub/i386-pc/xfs.module
+usr/lib/grub/i386-pc/xnu.mod
+usr/lib/grub/i386-pc/xnu.module
+usr/lib/grub/i386-pc/xnu_uuid.mod
+usr/lib/grub/i386-pc/xnu_uuid.module
+usr/lib/grub/i386-pc/xzio.mod
+usr/lib/grub/i386-pc/xzio.module
+usr/lib/grub/i386-pc/zfs.mod
+usr/lib/grub/i386-pc/zfs.module
+usr/lib/grub/i386-pc/zfscrypt.mod
+usr/lib/grub/i386-pc/zfscrypt.module
+usr/lib/grub/i386-pc/zfsinfo.mod
+usr/lib/grub/i386-pc/zfsinfo.module
+usr/sbin/grub-bios-setup
 usr/sbin/grub-install
-usr/sbin/grub-md5-crypt
+usr/sbin/grub-mkconfig
+usr/sbin/grub-mknetdir
+usr/sbin/grub-ofpathname
+usr/sbin/grub-probe
+usr/sbin/grub-reboot
 usr/sbin/grub-set-default
-usr/sbin/grub-terminfo
+usr/sbin/grub-sparc64-setup
+usr/share/grub
+usr/share/grub/grub-mkconfig_lib
+#usr/share/info/grub-dev.info
 #usr/share/info/grub.info
-#usr/share/info/multiboot.info
-#usr/share/man/man1/mbchk.1
-#usr/share/man/man8/grub-install.8
-#usr/share/man/man8/grub-md5-crypt.8
-#usr/share/man/man8/grub-terminfo.8
-#usr/share/man/man8/grub.8
+#usr/share/locale/ast
+#usr/share/locale/ast/LC_MESSAGES
+#usr/share/locale/ast/LC_MESSAGES/grub.mo
+#usr/share/locale/ca/LC_MESSAGES/grub.mo
+#usr/share/locale/da/LC_MESSAGES/grub.mo
+#usr/share/locale/de/LC_MESSAGES/grub.mo
+#usr/share/locale/de@hebrew
+#usr/share/locale/de@hebrew/LC_MESSAGES
+#usr/share/locale/de@hebrew/LC_MESSAGES/grub.mo
+#usr/share/locale/de_CH
+#usr/share/locale/de_CH/LC_MESSAGES
+#usr/share/locale/de_CH/LC_MESSAGES/grub.mo
+#usr/share/locale/en@arabic
+#usr/share/locale/en@arabic/LC_MESSAGES
+#usr/share/locale/en@arabic/LC_MESSAGES/grub.mo
+#usr/share/locale/en@cyrillic
+#usr/share/locale/en@cyrillic/LC_MESSAGES
+#usr/share/locale/en@cyrillic/LC_MESSAGES/grub.mo
+#usr/share/locale/en@greek
+#usr/share/locale/en@greek/LC_MESSAGES
+#usr/share/locale/en@greek/LC_MESSAGES/grub.mo
+#usr/share/locale/en@hebrew
+#usr/share/locale/en@hebrew/LC_MESSAGES
+#usr/share/locale/en@hebrew/LC_MESSAGES/grub.mo
+#usr/share/locale/en@piglatin
+#usr/share/locale/en@piglatin/LC_MESSAGES
+#usr/share/locale/en@piglatin/LC_MESSAGES/grub.mo
+#usr/share/locale/en@quot/LC_MESSAGES/grub.mo
+#usr/share/locale/eo/LC_MESSAGES/grub.mo
+#usr/share/locale/fi/LC_MESSAGES/grub.mo
+#usr/share/locale/fr/LC_MESSAGES/grub.mo
+#usr/share/locale/hu/LC_MESSAGES/grub.mo
+#usr/share/locale/id/LC_MESSAGES/grub.mo
+#usr/share/locale/it/LC_MESSAGES/grub.mo
+#usr/share/locale/ja/LC_MESSAGES/grub.mo
+#usr/share/locale/nl/LC_MESSAGES/grub.mo
+#usr/share/locale/pa
+#usr/share/locale/pa/LC_MESSAGES
+#usr/share/locale/pa/LC_MESSAGES/grub.mo
+#usr/share/locale/pl/LC_MESSAGES/grub.mo
+#usr/share/locale/ru/LC_MESSAGES/grub.mo
+#usr/share/locale/sv/LC_MESSAGES/grub.mo
+#usr/share/locale/uk/LC_MESSAGES/grub.mo
+#usr/share/locale/vi/LC_MESSAGES/grub.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/grub.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/grub.mo
index 622886fd647f909dc2bb340b1ca5682642789a5e..529bcc9c0a354476e1df37139861a38a9e41ad0a 100644 (file)
@@ -46,7 +46,6 @@ etc/rc.d/init.d/ipsec
 etc/rc.d/init.d/leds
 etc/rc.d/init.d/localnet
 etc/rc.d/init.d/mISDN
-#etc/rc.d/init.d/mdadm
 #etc/rc.d/init.d/mediatomb
 #etc/rc.d/init.d/messagebus
 #etc/rc.d/init.d/miau
@@ -221,8 +220,10 @@ etc/rc.d/rcsysinit.d/S10udev
 etc/rc.d/rcsysinit.d/S19checkfstab
 etc/rc.d/rcsysinit.d/S19waitdrives
 etc/rc.d/rcsysinit.d/S20swap
+etc/rc.d/rcsysinit.d/S25partresize
 etc/rc.d/rcsysinit.d/S30checkfs
 etc/rc.d/rcsysinit.d/S40mountfs
+etc/rc.d/rcsysinit.d/S42fsresize
 etc/rc.d/rcsysinit.d/S45udev_retry
 etc/rc.d/rcsysinit.d/S50cleanfs
 etc/rc.d/rcsysinit.d/S60setclock
index 3f364aed55e54ad1ee68f0f475c1291b7bb1abc2..e6ce913364665af4def76f791aadca529861b70c 100644 (file)
@@ -1,8 +1,7 @@
 boot/System.map-KVER-ipfire
-boot/System.map-ipfire
 boot/config-KVER-ipfire
+boot/initramfs-KVER-ipfire.img
 boot/vmlinuz-KVER-ipfire
-boot/vmlinuz-ipfire
 etc/modprobe.d/framebuffer.conf
 etc/modprobe.d/ipv6.conf
 etc/modprobe.d/isdn.conf
@@ -2954,4 +2953,4 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/modules.symbols.bin
 #lib/modules/KVER-ipfire/source
 sbin/gen_init_cpio
-boot/ipfirerd-KVER.img
+boot/initramfs-KVER-ipfire.img
diff --git a/config/rootfiles/common/installer b/config/rootfiles/common/installer
new file mode 100644 (file)
index 0000000..f28d984
--- /dev/null
@@ -0,0 +1,37 @@
+#usr/bin/downloadsource.sh
+#usr/bin/installer
+#usr/lib/dracut/modules.d/99installer
+#usr/lib/dracut/modules.d/99installer/70-dhcpcd.exe
+#usr/lib/dracut/modules.d/99installer/fake-root.sh
+#usr/lib/dracut/modules.d/99installer/module-setup.sh
+#usr/lib/dracut/modules.d/99installer/run-installer.sh
+#usr/share/locale/ar/LC_MESSAGES/installer.mo
+#usr/share/locale/ca/LC_MESSAGES/installer.mo
+#usr/share/locale/cs_CZ/LC_MESSAGES/installer.mo
+#usr/share/locale/da/LC_MESSAGES/installer.mo
+#usr/share/locale/de/LC_MESSAGES/installer.mo
+#usr/share/locale/el_GR/LC_MESSAGES/installer.mo
+#usr/share/locale/es/LC_MESSAGES/installer.mo
+#usr/share/locale/fa/LC_MESSAGES/installer.mo
+#usr/share/locale/fr/LC_MESSAGES/installer.mo
+#usr/share/locale/hu/LC_MESSAGES/installer.mo
+#usr/share/locale/id/LC_MESSAGES/installer.mo
+#usr/share/locale/it/LC_MESSAGES/installer.mo
+#usr/share/locale/ja/LC_MESSAGES/installer.mo
+#usr/share/locale/km_KH/LC_MESSAGES/installer.mo
+#usr/share/locale/nl/LC_MESSAGES/installer.mo
+#usr/share/locale/pl/LC_MESSAGES/installer.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/installer.mo
+#usr/share/locale/pt_PT/LC_MESSAGES/installer.mo
+#usr/share/locale/ro_RO/LC_MESSAGES/installer.mo
+#usr/share/locale/ru/LC_MESSAGES/installer.mo
+#usr/share/locale/sk/LC_MESSAGES/installer.mo
+#usr/share/locale/sq/LC_MESSAGES/installer.mo
+#usr/share/locale/sv/LC_MESSAGES/installer.mo
+#usr/share/locale/th/LC_MESSAGES/installer.mo
+#usr/share/locale/tk/LC_MESSAGES/installer.mo
+#usr/share/locale/tr/LC_MESSAGES/installer.mo
+#usr/share/locale/uk/LC_MESSAGES/installer.mo
+#usr/share/locale/uz@Latn/LC_MESSAGES/installer.mo
+#usr/share/locale/vi/LC_MESSAGES/installer.mo
+#usr/share/locale/zh/LC_MESSAGES/installer.mo
index 90e23652886994cd447a6a62db78dc735d383998..f490c89f6b5d17a5290a7e3bc7b26f7d423302ff 100644 (file)
@@ -9,7 +9,6 @@ sbin/getcap
 sbin/getpcaps
 sbin/setcap
 #usr/include/sys/capability.h
-usr/lib/libnewt.so.0.51
 #usr/share/man/man1/capsh.1
 #usr/share/man/man3/cap_clear.3
 #usr/share/man/man3/cap_clear_flag.3
diff --git a/config/rootfiles/common/libsmooth b/config/rootfiles/common/libsmooth
new file mode 100644 (file)
index 0000000..8064831
--- /dev/null
@@ -0,0 +1,6 @@
+#usr/include/libsmooth.h
+#usr/lib/libsmooth.la
+#usr/lib/libsmooth.so
+usr/lib/libsmooth.so.1
+usr/lib/libsmooth.so.1.0.0
+#usr/lib/pkgconfig/libsmooth.pc
diff --git a/config/rootfiles/common/lvm2 b/config/rootfiles/common/lvm2
new file mode 100644 (file)
index 0000000..8ccafc7
--- /dev/null
@@ -0,0 +1,103 @@
+#etc/lvm
+#etc/lvm/lvm.conf
+#usr/include/libdevmapper.h
+#usr/lib/libdevmapper.so
+usr/lib/libdevmapper.so.1.02
+#usr/lib/pkgconfig/devmapper.pc
+#usr/sbin/dmsetup
+#usr/sbin/fsadm
+#usr/sbin/lvchange
+#usr/sbin/lvconvert
+#usr/sbin/lvcreate
+#usr/sbin/lvdisplay
+#usr/sbin/lvextend
+#usr/sbin/lvm
+#usr/sbin/lvmchange
+#usr/sbin/lvmconf
+#usr/sbin/lvmdiskscan
+#usr/sbin/lvmdump
+#usr/sbin/lvmsadc
+#usr/sbin/lvmsar
+#usr/sbin/lvreduce
+#usr/sbin/lvremove
+#usr/sbin/lvrename
+#usr/sbin/lvresize
+#usr/sbin/lvs
+#usr/sbin/lvscan
+#usr/sbin/pvchange
+#usr/sbin/pvck
+#usr/sbin/pvcreate
+#usr/sbin/pvdisplay
+#usr/sbin/pvmove
+#usr/sbin/pvremove
+#usr/sbin/pvresize
+#usr/sbin/pvs
+#usr/sbin/pvscan
+#usr/sbin/vgcfgbackup
+#usr/sbin/vgcfgrestore
+#usr/sbin/vgchange
+#usr/sbin/vgck
+#usr/sbin/vgconvert
+#usr/sbin/vgcreate
+#usr/sbin/vgdisplay
+#usr/sbin/vgexport
+#usr/sbin/vgextend
+#usr/sbin/vgimport
+#usr/sbin/vgimportclone
+#usr/sbin/vgmerge
+#usr/sbin/vgmknodes
+#usr/sbin/vgreduce
+#usr/sbin/vgremove
+#usr/sbin/vgrename
+#usr/sbin/vgs
+#usr/sbin/vgscan
+#usr/sbin/vgsplit
+#usr/share/man/man5/lvm.conf.5
+#usr/share/man/man8/dmsetup.8
+#usr/share/man/man8/fsadm.8
+#usr/share/man/man8/lvchange.8
+#usr/share/man/man8/lvconvert.8
+#usr/share/man/man8/lvcreate.8
+#usr/share/man/man8/lvdisplay.8
+#usr/share/man/man8/lvextend.8
+#usr/share/man/man8/lvm.8
+#usr/share/man/man8/lvmchange.8
+#usr/share/man/man8/lvmconf.8
+#usr/share/man/man8/lvmdiskscan.8
+#usr/share/man/man8/lvmdump.8
+#usr/share/man/man8/lvmsadc.8
+#usr/share/man/man8/lvmsar.8
+#usr/share/man/man8/lvreduce.8
+#usr/share/man/man8/lvremove.8
+#usr/share/man/man8/lvrename.8
+#usr/share/man/man8/lvresize.8
+#usr/share/man/man8/lvs.8
+#usr/share/man/man8/lvscan.8
+#usr/share/man/man8/pvchange.8
+#usr/share/man/man8/pvck.8
+#usr/share/man/man8/pvcreate.8
+#usr/share/man/man8/pvdisplay.8
+#usr/share/man/man8/pvmove.8
+#usr/share/man/man8/pvremove.8
+#usr/share/man/man8/pvresize.8
+#usr/share/man/man8/pvs.8
+#usr/share/man/man8/pvscan.8
+#usr/share/man/man8/vgcfgbackup.8
+#usr/share/man/man8/vgcfgrestore.8
+#usr/share/man/man8/vgchange.8
+#usr/share/man/man8/vgck.8
+#usr/share/man/man8/vgconvert.8
+#usr/share/man/man8/vgcreate.8
+#usr/share/man/man8/vgdisplay.8
+#usr/share/man/man8/vgexport.8
+#usr/share/man/man8/vgextend.8
+#usr/share/man/man8/vgimport.8
+#usr/share/man/man8/vgimportclone.8
+#usr/share/man/man8/vgmerge.8
+#usr/share/man/man8/vgmknodes.8
+#usr/share/man/man8/vgreduce.8
+#usr/share/man/man8/vgremove.8
+#usr/share/man/man8/vgrename.8
+#usr/share/man/man8/vgs.8
+#usr/share/man/man8/vgscan.8
+#usr/share/man/man8/vgsplit.8
similarity index 55%
rename from config/rootfiles/packages/mdadm
rename to config/rootfiles/common/mdadm
index d593cac2541167f8574c68e5793b7df364cf8b82..00d38a8c864ca35cf98458a25548a7ea1dff1950 100644 (file)
@@ -1,12 +1,9 @@
-etc/rc.d/rc0.d/S85mdadm
-etc/rc.d/rc6.d/S75mdadm
-etc/rc.d/rcsysinit.d/S11mdadm
-lib/udev/rules.d/64-md-raid.rules
+lib/udev/rules.d/63-md-raid-arrays.rules
+lib/udev/rules.d/64-md-raid-assembly.rules
 sbin/mdadm
 sbin/mdmon
 #usr/share/man/man4/md.4
 #usr/share/man/man5/mdadm.conf.5
 #usr/share/man/man8/mdadm.8
 #usr/share/man/man8/mdmon.8
-etc/rc.d/init.d/mdadm
 srv/web/ipfire/cgi-bin/mdstat.cgi
diff --git a/config/rootfiles/common/mktemp b/config/rootfiles/common/mktemp
deleted file mode 100644 (file)
index e6328ab..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/mktemp
-#usr/bin/tempfile
-#usr/man/man1/mktemp.1
diff --git a/config/rootfiles/common/multipath-tools b/config/rootfiles/common/multipath-tools
new file mode 100644 (file)
index 0000000..b889621
--- /dev/null
@@ -0,0 +1,4 @@
+#etc/udev/rules.d/kpartx.rules
+#lib/udev/kpartx_id
+#sbin/kpartx
+#usr/share/man/man8/kpartx.8.gz
index 08fb2ce0c4ae45f1eba192b816b9153145bb5d8d..c7f7414fb9207a2b8055bb5cec6c223fe7628ff4 100644 (file)
@@ -1,8 +1,143 @@
 usr/bin/whiptail
 #usr/include/newt.h
 #usr/lib/libnewt.a
-usr/lib/libnewt.so
-usr/lib/libnewt.so.0.51
-usr/lib/libnewt.so.0.51.6
-#usr/lib/python2.7/site-packages/_snackmodule.so
+#usr/lib/libnewt.so
+usr/lib/libnewt.so.0.52
+usr/lib/libnewt.so.0.52.17
+#usr/lib/pkgconfig/libnewt.pc
+#usr/lib/python2.7/site-packages/_snack.so
 #usr/lib/python2.7/site-packages/snack.py
+#usr/share/locale/ar
+#usr/share/locale/ar/LC_MESSAGES
+#usr/share/locale/ar/LC_MESSAGES/newt.mo
+#usr/share/locale/as
+#usr/share/locale/as/LC_MESSAGES
+#usr/share/locale/as/LC_MESSAGES/newt.mo
+#usr/share/locale/ast/LC_MESSAGES/newt.mo
+#usr/share/locale/bal
+#usr/share/locale/bal/LC_MESSAGES
+#usr/share/locale/bal/LC_MESSAGES/newt.mo
+#usr/share/locale/bg/LC_MESSAGES/newt.mo
+#usr/share/locale/bn
+#usr/share/locale/bn/LC_MESSAGES
+#usr/share/locale/bn/LC_MESSAGES/newt.mo
+#usr/share/locale/bn_IN
+#usr/share/locale/bn_IN/LC_MESSAGES
+#usr/share/locale/bn_IN/LC_MESSAGES/newt.mo
+#usr/share/locale/bs/LC_MESSAGES/newt.mo
+#usr/share/locale/ca/LC_MESSAGES/newt.mo
+#usr/share/locale/cs/LC_MESSAGES/newt.mo
+#usr/share/locale/cy
+#usr/share/locale/cy/LC_MESSAGES
+#usr/share/locale/cy/LC_MESSAGES/newt.mo
+#usr/share/locale/da/LC_MESSAGES/newt.mo
+#usr/share/locale/de/LC_MESSAGES/newt.mo
+#usr/share/locale/dz
+#usr/share/locale/dz/LC_MESSAGES
+#usr/share/locale/dz/LC_MESSAGES/newt.mo
+#usr/share/locale/el/LC_MESSAGES/newt.mo
+#usr/share/locale/eo/LC_MESSAGES/newt.mo
+#usr/share/locale/es/LC_MESSAGES/newt.mo
+#usr/share/locale/et/LC_MESSAGES/newt.mo
+#usr/share/locale/eu/LC_MESSAGES/newt.mo
+#usr/share/locale/fa
+#usr/share/locale/fa/LC_MESSAGES
+#usr/share/locale/fa/LC_MESSAGES/newt.mo
+#usr/share/locale/fi/LC_MESSAGES/newt.mo
+#usr/share/locale/fr/LC_MESSAGES/newt.mo
+#usr/share/locale/ga/LC_MESSAGES/newt.mo
+#usr/share/locale/gl/LC_MESSAGES/newt.mo
+#usr/share/locale/gu
+#usr/share/locale/gu/LC_MESSAGES
+#usr/share/locale/gu/LC_MESSAGES/newt.mo
+#usr/share/locale/he
+#usr/share/locale/he/LC_MESSAGES
+#usr/share/locale/he/LC_MESSAGES/newt.mo
+#usr/share/locale/hi
+#usr/share/locale/hi/LC_MESSAGES
+#usr/share/locale/hi/LC_MESSAGES/newt.mo
+#usr/share/locale/hr/LC_MESSAGES/newt.mo
+#usr/share/locale/hu/LC_MESSAGES/newt.mo
+#usr/share/locale/ia/LC_MESSAGES/newt.mo
+#usr/share/locale/id/LC_MESSAGES/newt.mo
+#usr/share/locale/it/LC_MESSAGES/newt.mo
+#usr/share/locale/ja/LC_MESSAGES/newt.mo
+#usr/share/locale/km
+#usr/share/locale/km/LC_MESSAGES
+#usr/share/locale/km/LC_MESSAGES/newt.mo
+#usr/share/locale/kn
+#usr/share/locale/kn/LC_MESSAGES
+#usr/share/locale/kn/LC_MESSAGES/newt.mo
+#usr/share/locale/ko/LC_MESSAGES/newt.mo
+#usr/share/locale/ku
+#usr/share/locale/ku/LC_MESSAGES
+#usr/share/locale/ku/LC_MESSAGES/newt.mo
+#usr/share/locale/lt/LC_MESSAGES/newt.mo
+#usr/share/locale/lv
+#usr/share/locale/lv/LC_MESSAGES
+#usr/share/locale/lv/LC_MESSAGES/newt.mo
+#usr/share/locale/mg
+#usr/share/locale/mg/LC_MESSAGES
+#usr/share/locale/mg/LC_MESSAGES/newt.mo
+#usr/share/locale/mk
+#usr/share/locale/mk/LC_MESSAGES
+#usr/share/locale/mk/LC_MESSAGES/newt.mo
+#usr/share/locale/ml
+#usr/share/locale/ml/LC_MESSAGES
+#usr/share/locale/ml/LC_MESSAGES/newt.mo
+#usr/share/locale/mr
+#usr/share/locale/mr/LC_MESSAGES
+#usr/share/locale/mr/LC_MESSAGES/newt.mo
+#usr/share/locale/ms/LC_MESSAGES/newt.mo
+#usr/share/locale/nb/LC_MESSAGES/newt.mo
+#usr/share/locale/nds
+#usr/share/locale/nds/LC_MESSAGES
+#usr/share/locale/nds/LC_MESSAGES/newt.mo
+#usr/share/locale/ne
+#usr/share/locale/ne/LC_MESSAGES
+#usr/share/locale/ne/LC_MESSAGES/newt.mo
+#usr/share/locale/nl/LC_MESSAGES/newt.mo
+#usr/share/locale/nn
+#usr/share/locale/nn/LC_MESSAGES
+#usr/share/locale/nn/LC_MESSAGES/newt.mo
+#usr/share/locale/pa/LC_MESSAGES/newt.mo
+#usr/share/locale/pl/LC_MESSAGES/newt.mo
+#usr/share/locale/pt/LC_MESSAGES/newt.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/newt.mo
+#usr/share/locale/ro/LC_MESSAGES/newt.mo
+#usr/share/locale/ru/LC_MESSAGES/newt.mo
+#usr/share/locale/sk/LC_MESSAGES/newt.mo
+#usr/share/locale/sl/LC_MESSAGES/newt.mo
+#usr/share/locale/sq/LC_MESSAGES/newt.mo
+#usr/share/locale/sr/LC_MESSAGES/newt.mo
+#usr/share/locale/sr@latin
+#usr/share/locale/sr@latin/LC_MESSAGES
+#usr/share/locale/sr@latin/LC_MESSAGES/newt.mo
+#usr/share/locale/sv/LC_MESSAGES/newt.mo
+#usr/share/locale/ta
+#usr/share/locale/ta/LC_MESSAGES
+#usr/share/locale/ta/LC_MESSAGES/newt.mo
+#usr/share/locale/te
+#usr/share/locale/te/LC_MESSAGES
+#usr/share/locale/te/LC_MESSAGES/newt.mo
+#usr/share/locale/tg
+#usr/share/locale/tg/LC_MESSAGES
+#usr/share/locale/tg/LC_MESSAGES/newt.mo
+#usr/share/locale/th
+#usr/share/locale/th/LC_MESSAGES
+#usr/share/locale/th/LC_MESSAGES/newt.mo
+#usr/share/locale/tl
+#usr/share/locale/tl/LC_MESSAGES
+#usr/share/locale/tl/LC_MESSAGES/newt.mo
+#usr/share/locale/tr/LC_MESSAGES/newt.mo
+#usr/share/locale/uk/LC_MESSAGES/newt.mo
+#usr/share/locale/vi/LC_MESSAGES/newt.mo
+#usr/share/locale/wo
+#usr/share/locale/wo/LC_MESSAGES
+#usr/share/locale/wo/LC_MESSAGES/newt.mo
+#usr/share/locale/xh
+#usr/share/locale/xh/LC_MESSAGES
+#usr/share/locale/xh/LC_MESSAGES/newt.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/newt.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/newt.mo
+#usr/share/man/man1/whiptail.1
similarity index 84%
rename from config/rootfiles/packages/parted
rename to config/rootfiles/common/parted
index 74164e0b7785f689f71824b23f041135379b86f3..223a580cb0831809e47444627bc6a48c14d68c53 100644 (file)
 #usr/include/parted/parted.h
 #usr/include/parted/timer.h
 #usr/include/parted/unit.h
+#usr/lib/libparted-fs-resize.a
+#usr/lib/libparted-fs-resize.la
+#usr/lib/libparted-fs-resize.so
+usr/lib/libparted-fs-resize.so.0
+usr/lib/libparted-fs-resize.so.0.0.0
 #usr/lib/libparted.a
 #usr/lib/libparted.la
 #usr/lib/libparted.so
-usr/lib/libparted.so.0
-usr/lib/libparted.so.0.0.1
+usr/lib/libparted.so.2
+usr/lib/libparted.so.2.0.0
 #usr/lib/pkgconfig/libparted.pc
 usr/sbin/parted
 usr/sbin/partprobe
@@ -38,6 +43,8 @@ usr/sbin/partprobe
 #usr/share/locale/ru/LC_MESSAGES/parted.mo
 #usr/share/locale/rw/LC_MESSAGES/parted.mo
 #usr/share/locale/sk/LC_MESSAGES/parted.mo
+#usr/share/locale/sl/LC_MESSAGES/parted.mo
+#usr/share/locale/sr/LC_MESSAGES/parted.mo
 #usr/share/locale/sv/LC_MESSAGES/parted.mo
 #usr/share/locale/tr/LC_MESSAGES/parted.mo
 #usr/share/locale/uk/LC_MESSAGES/parted.mo
index b3538ad1973a95002ba6c02104d5318dd0f23706..d144ca1b8637bbd2732573702db1e510b0a6e1be 100644 (file)
@@ -1,2 +1,2 @@
 usr/bin/patch
-#usr/man/man1/patch.1
+#usr/share/man/man1/patch.1
diff --git a/config/rootfiles/common/pigz b/config/rootfiles/common/pigz
new file mode 100644 (file)
index 0000000..618d924
--- /dev/null
@@ -0,0 +1,2 @@
+#usr/bin/pigz
+#usr/bin/unpigz
index 7bef2c18faf091d69ad3991e0e204af885f32aff..b2ac26dd4c37c9673e880de4b07ba6d13a44b572 100644 (file)
@@ -9,10 +9,14 @@
 #usr/include/readline/tilde.h
 #usr/lib/libhistory.so
 usr/lib/libhistory.so.6
-usr/lib/libhistory.so.6.2
+usr/lib/libhistory.so.6.3
 #usr/lib/libreadline.so
 usr/lib/libreadline.so.6
-usr/lib/libreadline.so.6.2
+usr/lib/libreadline.so.6.3
+#usr/share/doc/readline
+#usr/share/doc/readline/CHANGES
+#usr/share/doc/readline/INSTALL
+#usr/share/doc/readline/README
 #usr/share/info/history.info
 #usr/share/info/readline.info
 #usr/share/info/rluserman.info
index 1e33068123d1b5cf206834c1c4756507e0f6c6e6..334c243a4ef3de1d5055dcddb2134fc567040636 100644 (file)
@@ -1,2 +1,3 @@
-usr/local/sbin/setup
-bin/probenic.sh
+usr/bin/probenic.sh
+usr/sbin/setup
+usr/share/locale/de/LC_MESSAGES/setup.mo
index c6afc2c79758a2812440c8576b6cc01be0645466..0ebef78c70cfcd4c3d9b5af57d1176bda54e290f 100644 (file)
-#usr/doc
-#usr/doc/slang
-#usr/doc/slang/COPYING
-#usr/doc/slang/COPYING.ART
-#usr/doc/slang/COPYING.GPL
-#usr/doc/slang/COPYRIGHT
-#usr/doc/slang/changes.txt
-#usr/doc/slang/cref.txt
-#usr/doc/slang/cslang.txt
-#usr/doc/slang/slang.txt
-#usr/doc/slang/slangdoc.html
-#usr/doc/slang/slangfun.txt
+#etc/slsh.rc
+#usr/bin/slsh
 #usr/include/slang.h
 #usr/include/slcurses.h
-#usr/lib/libslang-utf8.a
-usr/lib/libslang-utf8.so
-usr/lib/libslang-utf8.so.1
-usr/lib/libslang-utf8.so.1.4.9
-#usr/lib/libslang.a
-usr/lib/libslang.so
+#usr/lib/libslang.so
+usr/lib/libslang.so.2
+usr/lib/libslang.so.2.2.4
+#usr/lib/pkgconfig/slang.pc
+#usr/lib/slang
+#usr/lib/slang/v2
+#usr/lib/slang/v2/modules
+usr/lib/slang/v2/modules/csv-module.so
+usr/lib/slang/v2/modules/fcntl-module.so
+usr/lib/slang/v2/modules/fork-module.so
+usr/lib/slang/v2/modules/iconv-module.so
+usr/lib/slang/v2/modules/pcre-module.so
+usr/lib/slang/v2/modules/png-module.so
+usr/lib/slang/v2/modules/rand-module.so
+usr/lib/slang/v2/modules/select-module.so
+usr/lib/slang/v2/modules/slsmg-module.so
+usr/lib/slang/v2/modules/socket-module.so
+usr/lib/slang/v2/modules/sysconf-module.so
+usr/lib/slang/v2/modules/termios-module.so
+usr/lib/slang/v2/modules/varray-module.so
+usr/lib/slang/v2/modules/zlib-module.so
+#usr/share/doc/slang
+#usr/share/doc/slang/v2
+#usr/share/doc/slang/v2/COPYING
+#usr/share/doc/slang/v2/changes.txt
+#usr/share/doc/slang/v2/cref.txt
+#usr/share/doc/slang/v2/cslang.txt
+#usr/share/doc/slang/v2/slang.txt
+#usr/share/doc/slang/v2/slangdoc.html
+#usr/share/doc/slang/v2/slangfun.txt
+#usr/share/doc/slsh
+#usr/share/doc/slsh/html
+#usr/share/doc/slsh/html/slshfun-1.html
+#usr/share/doc/slsh/html/slshfun-2.html
+#usr/share/doc/slsh/html/slshfun-3.html
+#usr/share/doc/slsh/html/slshfun-4.html
+#usr/share/doc/slsh/html/slshfun-5.html
+#usr/share/doc/slsh/html/slshfun-6.html
+#usr/share/doc/slsh/html/slshfun-7.html
+#usr/share/doc/slsh/html/slshfun-8.html
+#usr/share/doc/slsh/html/slshfun-9.html
+#usr/share/doc/slsh/html/slshfun.html
+#usr/share/man/man1/slsh.1
+#usr/share/slsh
+#usr/share/slsh/arrayfuns.sl
+#usr/share/slsh/autoload.sl
+#usr/share/slsh/cmaps
+#usr/share/slsh/cmaps/cool.map
+#usr/share/slsh/cmaps/coolwarm.map
+#usr/share/slsh/cmaps/copper.map
+#usr/share/slsh/cmaps/drywet.map
+#usr/share/slsh/cmaps/ds9b.map
+#usr/share/slsh/cmaps/ds9sls.map
+#usr/share/slsh/cmaps/gebco.map
+#usr/share/slsh/cmaps/globe.map
+#usr/share/slsh/cmaps/gray.map
+#usr/share/slsh/cmaps/haxby.map
+#usr/share/slsh/cmaps/hot.map
+#usr/share/slsh/cmaps/jet.map
+#usr/share/slsh/cmaps/no_green.map
+#usr/share/slsh/cmaps/ocean.map
+#usr/share/slsh/cmaps/polar.map
+#usr/share/slsh/cmaps/rainbow.map
+#usr/share/slsh/cmaps/red2green.map
+#usr/share/slsh/cmaps/relief.map
+#usr/share/slsh/cmaps/sealand.map
+#usr/share/slsh/cmaps/seis.map
+#usr/share/slsh/cmaps/split.map
+#usr/share/slsh/cmaps/topo.map
+#usr/share/slsh/cmaps/wysiwyg.map
+#usr/share/slsh/cmdopt.sl
+#usr/share/slsh/csv.sl
+#usr/share/slsh/fcntl.sl
+#usr/share/slsh/fork.sl
+#usr/share/slsh/glob.sl
+#usr/share/slsh/help
+#usr/share/slsh/help/arrayfuns.hlp
+#usr/share/slsh/help/cmdopt.hlp
+#usr/share/slsh/help/csvfuns.hlp
+#usr/share/slsh/help/forkfuns.hlp
+#usr/share/slsh/help/glob.hlp
+#usr/share/slsh/help/onigfuns.hlp
+#usr/share/slsh/help/pcrefuns.hlp
+#usr/share/slsh/help/pngfuns.hlp
+#usr/share/slsh/help/print.hlp
+#usr/share/slsh/help/process.hlp
+#usr/share/slsh/help/profile.hlp
+#usr/share/slsh/help/randfuns.hlp
+#usr/share/slsh/help/readascii.hlp
+#usr/share/slsh/help/require.hlp
+#usr/share/slsh/help/setfuns.hlp
+#usr/share/slsh/help/slsmg.hlp
+#usr/share/slsh/help/sockfuns.hlp
+#usr/share/slsh/help/structfuns.hlp
+#usr/share/slsh/iconv.sl
+#usr/share/slsh/local-packages
+#usr/share/slsh/onig.sl
+#usr/share/slsh/pcre.sl
+#usr/share/slsh/png.sl
+#usr/share/slsh/print.sl
+#usr/share/slsh/process.sl
+#usr/share/slsh/profile.sl
+#usr/share/slsh/rand.sl
+#usr/share/slsh/readascii.sl
+#usr/share/slsh/require.sl
+#usr/share/slsh/rline
+#usr/share/slsh/rline/complete.sl
+#usr/share/slsh/rline/editfuns.sl
+#usr/share/slsh/rline/editor.sl
+#usr/share/slsh/rline/emacskeys.sl
+#usr/share/slsh/rline/history.sl
+#usr/share/slsh/rline/histsrch.sl
+#usr/share/slsh/rline/slrline.rc
+#usr/share/slsh/rline/vikeys.sl
+#usr/share/slsh/scripts
+#usr/share/slsh/scripts/jpegsize
+#usr/share/slsh/scripts/lsrpm
+#usr/share/slsh/scripts/sldb
+#usr/share/slsh/scripts/slprof
+#usr/share/slsh/scripts/slstkchk
+#usr/share/slsh/scripts/svnsh
+#usr/share/slsh/select.sl
+#usr/share/slsh/setfuns.sl
+#usr/share/slsh/sldb.sl
+#usr/share/slsh/sldbcore.sl
+#usr/share/slsh/sldbsock.sl
+#usr/share/slsh/slshhelp.sl
+#usr/share/slsh/slshrl.sl
+#usr/share/slsh/slsmg.sl
+#usr/share/slsh/socket.sl
+#usr/share/slsh/stkcheck.sl
+#usr/share/slsh/structfuns.sl
+#usr/share/slsh/sysconf.sl
+#usr/share/slsh/termios.sl
+#usr/share/slsh/varray.sl
+#usr/share/slsh/zlib.sl
similarity index 98%
rename from config/rootfiles/packages/xfsprogs
rename to config/rootfiles/common/xfsprogs
index ea3e18f71f69e2d21d23004861bb74a41e4a3cf8..4c445341bb9abcad405d2c4b580c9f6c7e0b31e9 100644 (file)
@@ -4,7 +4,7 @@ sbin/fsck.xfs
 sbin/mkfs.xfs
 sbin/xfs_repair
 #usr/lib/libhandle.la
-usr/lib/libhandle.so
+#usr/lib/libhandle.so
 usr/sbin/xfs_admin
 usr/sbin/xfs_bmap
 usr/sbin/xfs_check
diff --git a/config/rootfiles/installer/coreutils b/config/rootfiles/installer/coreutils
deleted file mode 120000 (symlink)
index b41d95a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/coreutils
\ No newline at end of file
diff --git a/config/rootfiles/installer/dhcpcd b/config/rootfiles/installer/dhcpcd
deleted file mode 120000 (symlink)
index ea5996c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/dhcpcd
\ No newline at end of file
diff --git a/config/rootfiles/installer/e2fsprogs b/config/rootfiles/installer/e2fsprogs
deleted file mode 120000 (symlink)
index 2a6ee42..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/e2fsprogs
\ No newline at end of file
diff --git a/config/rootfiles/installer/files b/config/rootfiles/installer/files
deleted file mode 100644 (file)
index aba14d8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-etc/host.conf
-etc/hosts
-etc/protocols
-
diff --git a/config/rootfiles/installer/findutils b/config/rootfiles/installer/findutils
deleted file mode 120000 (symlink)
index 1114c4c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/findutils
\ No newline at end of file
diff --git a/config/rootfiles/installer/gawk b/config/rootfiles/installer/gawk
deleted file mode 120000 (symlink)
index a7660cf..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/gawk
\ No newline at end of file
diff --git a/config/rootfiles/installer/glibc b/config/rootfiles/installer/glibc
deleted file mode 120000 (symlink)
index 4a46726..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/i586/glibc
\ No newline at end of file
diff --git a/config/rootfiles/installer/grep b/config/rootfiles/installer/grep
deleted file mode 120000 (symlink)
index f7bf2d9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/grep
\ No newline at end of file
diff --git a/config/rootfiles/installer/gzip b/config/rootfiles/installer/gzip
deleted file mode 120000 (symlink)
index 1cbc376..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/gzip
\ No newline at end of file
diff --git a/config/rootfiles/installer/hwdata b/config/rootfiles/installer/hwdata
deleted file mode 120000 (symlink)
index 7ed7e21..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/hwdata
\ No newline at end of file
diff --git a/config/rootfiles/installer/iproute2 b/config/rootfiles/installer/iproute2
deleted file mode 120000 (symlink)
index efe83c5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/iproute2
\ No newline at end of file
diff --git a/config/rootfiles/installer/kbd b/config/rootfiles/installer/kbd
deleted file mode 120000 (symlink)
index 3efe86a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/kbd
\ No newline at end of file
diff --git a/config/rootfiles/installer/libidn b/config/rootfiles/installer/libidn
deleted file mode 120000 (symlink)
index 9750546..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/libidn
\ No newline at end of file
diff --git a/config/rootfiles/installer/libusb b/config/rootfiles/installer/libusb
deleted file mode 120000 (symlink)
index efe4a28..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/libusb
\ No newline at end of file
diff --git a/config/rootfiles/installer/misc-progs b/config/rootfiles/installer/misc-progs
deleted file mode 100644 (file)
index 1e4226b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/ping
-usr/local/bin/iowrap
diff --git a/config/rootfiles/installer/ncurses b/config/rootfiles/installer/ncurses
deleted file mode 120000 (symlink)
index 7aac8a2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/ncurses
\ No newline at end of file
diff --git a/config/rootfiles/installer/newt b/config/rootfiles/installer/newt
deleted file mode 120000 (symlink)
index b63c480..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/newt
\ No newline at end of file
diff --git a/config/rootfiles/installer/openssl b/config/rootfiles/installer/openssl
deleted file mode 120000 (symlink)
index 8317ffd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/openssl
\ No newline at end of file
diff --git a/config/rootfiles/installer/parted b/config/rootfiles/installer/parted
deleted file mode 120000 (symlink)
index dc69674..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../packages/parted
\ No newline at end of file
diff --git a/config/rootfiles/installer/pciutils b/config/rootfiles/installer/pciutils
deleted file mode 120000 (symlink)
index 903f124..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/pciutils
\ No newline at end of file
diff --git a/config/rootfiles/installer/pcmciautils b/config/rootfiles/installer/pcmciautils
deleted file mode 120000 (symlink)
index 47b2fe8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/pcmciautils
\ No newline at end of file
diff --git a/config/rootfiles/installer/pcre b/config/rootfiles/installer/pcre
deleted file mode 120000 (symlink)
index ffd8616..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/pcre
\ No newline at end of file
diff --git a/config/rootfiles/installer/popt b/config/rootfiles/installer/popt
deleted file mode 120000 (symlink)
index d15b2c6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/popt
\ No newline at end of file
diff --git a/config/rootfiles/installer/reboot b/config/rootfiles/installer/reboot
deleted file mode 100644 (file)
index f1f6d64..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-sbin/reboot
-sbin/halt
diff --git a/config/rootfiles/installer/reiserfsprogs b/config/rootfiles/installer/reiserfsprogs
deleted file mode 120000 (symlink)
index f596f68..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/reiserfsprogs
\ No newline at end of file
diff --git a/config/rootfiles/installer/sed b/config/rootfiles/installer/sed
deleted file mode 120000 (symlink)
index 4b0d3a3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/sed
\ No newline at end of file
diff --git a/config/rootfiles/installer/slang b/config/rootfiles/installer/slang
deleted file mode 120000 (symlink)
index 405fd40..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/slang
\ No newline at end of file
diff --git a/config/rootfiles/installer/sysfsutils b/config/rootfiles/installer/sysfsutils
deleted file mode 120000 (symlink)
index 9c56a9a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/sysfsutils
\ No newline at end of file
diff --git a/config/rootfiles/installer/tar b/config/rootfiles/installer/tar
deleted file mode 120000 (symlink)
index f994ef6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/tar
\ No newline at end of file
diff --git a/config/rootfiles/installer/usbutils b/config/rootfiles/installer/usbutils
deleted file mode 120000 (symlink)
index dcc136f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/usbutils
\ No newline at end of file
diff --git a/config/rootfiles/installer/util-linux b/config/rootfiles/installer/util-linux
deleted file mode 120000 (symlink)
index f672071..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/i586/util-linux
\ No newline at end of file
diff --git a/config/rootfiles/installer/vim b/config/rootfiles/installer/vim
deleted file mode 120000 (symlink)
index 3ae92f3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/vim
\ No newline at end of file
diff --git a/config/rootfiles/installer/wget b/config/rootfiles/installer/wget
deleted file mode 120000 (symlink)
index b75cdbc..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/wget
\ No newline at end of file
diff --git a/config/rootfiles/installer/xz b/config/rootfiles/installer/xz
deleted file mode 120000 (symlink)
index 61772c7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/xz
\ No newline at end of file
diff --git a/config/rootfiles/installer/zlib b/config/rootfiles/installer/zlib
deleted file mode 120000 (symlink)
index fcdedec..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/zlib
\ No newline at end of file
index 9b198c2bdfbae9a082f2d3ef3455fb15abd8b6fd..60e0403d06e4d1def44d0d44881e1c8643c48fad 100644 (file)
@@ -1,8 +1,7 @@
 boot/System.map-KVER-ipfire-pae
-boot/System.map-ipfire-pae
 boot/config-KVER-ipfire-pae
+#boot/initramfs-KVER-ipfire-pae.img
 boot/vmlinuz-KVER-ipfire-pae
-boot/vmlinuz-ipfire-pae
 #lib/modules
 lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/build
index c30e30b406cd31fbdd5260b4b901ccf69f6b413c..f0b9536538e85de954b78f6a03bd9e4601919364 100644 (file)
@@ -1,3 +1,15 @@
 etc/rc.d/init.d/minidlna
 etc/minidlna.conf
-usr/sbin/minidlna
+usr/sbin/minidlnad
+#usr/share/locale/da/LC_MESSAGES/minidlna.mo
+#usr/share/locale/de/LC_MESSAGES/minidlna.mo
+#usr/share/locale/es/LC_MESSAGES/minidlna.mo
+#usr/share/locale/fr/LC_MESSAGES/minidlna.mo
+#usr/share/locale/it/LC_MESSAGES/minidlna.mo
+#usr/share/locale/ja/LC_MESSAGES/minidlna.mo
+#usr/share/locale/nb/LC_MESSAGES/minidlna.mo
+#usr/share/locale/nl/LC_MESSAGES/minidlna.mo
+#usr/share/locale/pl/LC_MESSAGES/minidlna.mo
+#usr/share/locale/ru/LC_MESSAGES/minidlna.mo
+#usr/share/locale/sl/LC_MESSAGES/minidlna.mo
+#usr/share/locale/sv/LC_MESSAGES/minidlna.mo
index 376a460ce78c7d2e733845b23ac3cd36dcbb9697..a511ad2d6f56eb373359750dc90a7ed7ba7e9ba9 100644 (file)
@@ -1,16 +1,10 @@
 ############################################################################
-# Checking install/setup translations for language: en                     #
-############################################################################
-############################################################################
 # Checking cgi-bin translations for language: en                           #
 ############################################################################
 < addon
 < ccd maxclients
 < ovpn_fragment
 ############################################################################
-# Checking install/setup translations for language: fr                     #
-############################################################################
-############################################################################
 # Checking cgi-bin translations for language: fr                           #
 ############################################################################
 < addon
 < wlan client wpa mode ccmp tkip
 < wlan client wpa mode tkip tkip
 ############################################################################
-# Checking install/setup translations for language: es                     #
-############################################################################
-############################################################################
 # Checking cgi-bin translations for language: es                           #
 ############################################################################
 < addon
 < wlan client wpa mode ccmp tkip
 < wlan client wpa mode tkip tkip
 ############################################################################
-# Checking install/setup translations for language: pl                     #
-############################################################################
-############################################################################
 # Checking cgi-bin translations for language: pl                           #
 ############################################################################
 < addon
 < wlan client wpa mode ccmp tkip
 < wlan client wpa mode tkip tkip
 ############################################################################
-# Checking install/setup translations for language: ru                     #
-############################################################################
-############################################################################
 # Checking cgi-bin translations for language: ru                           #
 ############################################################################
 < Add a route
diff --git a/langs/de/install/lang_de.c b/langs/de/install/lang_de.c
deleted file mode 100644 (file)
index 8c93586..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-/*
- * German (de) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPCop is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPCop 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPCop; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- * 
- * (c) IPFire Team  <info@ipfire.org>
- *
- * based on work of SmoothWall and IPCop
- *
- * (c) The SmoothWall Team
- * 
- * IPCop translation
- * (c) 2003 Dirk Loss, Ludwig Steininger, Michael Knappe, Michael Linke,
- * Richard Hartmann, Ufuk Altinkaynak, Gerhard Abrahams, Benjamin Kohberg,
- * Samuel Wiktor 
- */
-#include "libsmooth.h"
-
-char *de_tr[] = {
-
-/* TR_ISDN */
-"ISDN",
-/* TR_ERROR_PROBING_ISDN */
-"Konnte ISDN Scan nicht durchführen.",
-/* TR_PROBING_ISDN */
-"Suche und konfiguriere ISDN Geräte.",
-/* TR_MISSING_GREEN_IP */
-"Fehlende IP auf der grünen Schnittstelle!",
-/* TR_CHOOSE_FILESYSTEM */
-"Bitte wählen Sie ihr Dateisystem aus:",
-/* TR_NOT_ENOUGH_INTERFACES */
-"Nicht genügend Netzwerkkarten für diese Auswahl gefunden.\n\nBenötigt: %d - Gefunden: %d\n",
-/* TR_INTERFACE_CHANGE */
-"Bitte wählen Sie das Interface aus das geändert werden soll.\n\n",
-/* TR_NETCARD_COLOR */
-"Zugewiesene Karten",
-/* TR_REMOVE */
-"Entfernen",
-/* TR_MISSING_DNS */
-"Kein DNS eingetragen\n",
-/* TR_MISSING_DEFAULT */
-"Kein default Gateway eingetragen.\n",
-/* TR_JOURNAL_EXT3 */
-"Erstelle Journal für Ext3...",
-/* TR_CHOOSE_NETCARD */
-"Bitte wählen Sie eine der untenstehenden Netzwerkkarten für die folgene Schnittstelle aus - %s.",
-/* TR_NETCARDMENU2 */
-"Erweitertes Netzwerkmenu",
-/* TR_ERROR_INTERFACES */
-"Es wurden leider keine freien Netzwerkkarten für die Schnittstelle in ihrem System gefunden.",
-/* TR_REMOVE_CARD */
-"Soll die Zuordnung der folgende Netzwerkkarte entfernt werden? - %s",
-/* TR_JOURNAL_ERROR */
-"Konnte das Journal nicht erstelle, verwende ext2 Fallback.",
-/* TR_FILESYSTEM */
-"Dateisystemauswahl",
-/* TR_ADDRESS_SETTINGS */
-"Adress-Einstellungen",
-/* TR_ADMIN_PASSWORD */
-"'admin'-Passwort",
-/* TR_AGAIN_PROMPT */
-"Wiederholung:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"Alle Karten wurden erfolgreich zugeordnet.",
-/* TR_AUTODETECT */
-"* AUTOMATISCHE ERKENNUNG *",
-/* TR_BUILDING_INITRD */
-"Erzeuge Ramdisk...",
-/* TR_CANCEL */
-"Abbrechen",
-/* TR_CARD_ASSIGNMENT */
-"Karten-Zuordnung",
-/* TR_CHECKING */
-"Überprüfe URL...",
-/* TR_CHECKING_FOR */
-"Suche nach: %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Wähle die ISDN-Karte in diesem Computer aus:",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"Wählen Sie das benötigte ISDN-Protokoll.",
-/* TR_CONFIGURE_DHCP */
-"Konfigurieren Sie den DHCP-Server durch Eingabe der Einstellungen:",
-/* TR_CONFIGURE_NETWORKING */
-"Netzwerk konfigurieren",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"Sie sollten jetzt das Netzwerk konfigurieren. Laden Sie zunächst den richtigen Treiber für die GRÜNE Schnittstelle, indem Sie die Netzwerkkarte entweder automatisch erkennen lassen oder den richtigen Treiber aus einer Liste auswählen. Wenn Sie mehr als eine Netzwerkkarte installiert haben, können Sie die anderen später konfigurieren. Sollten Sie mehrere Karten vom gleichen Typ wie die an der GRÜNEN Schnittstelle haben und jede Karte spezielle Modulparameter benötigen, sollten Sie jetzt die Parameter für alle diese Karten eingeben, so dass alle Karten aktiv werden, wenn Sie die GRÜNE Schnittstelle konfigurieren.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Konfigurieren Sie die Netzwerktreiber und geben Sie an, welcher Schnittstelle jede Karte zugewiesen ist. Die aktuelle Konfiguration ist wie folgt:\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Konfigurieren Sie das CD-ROM-Laufwerk, indem Sie die richtigen Werte für IO-Adresse und/oder IRQ eingeben.",
-/* TR_CONGRATULATIONS */
-"Herzlichen Glückwunsch!",
-/* TR_CONGRATULATIONS_LONG */
-"%s wurde erfolgreich installiert. Entfernen Sie bitte alle eventuellen CDs aus dem Computer. Nun wird das Setup-Programm gestartet, in dem Sie ISDN, Netzwerkkarten und die Systempasswörter konfigurieren können. Wenn dies fertiggestellt ist, rufen Sie in Ihrem Webbrowser die Box mit https://%s:444 (oder welchen Namen Sie Ihrem %s auch immer gegeben haben) auf und konfigurieren die Wählverbindung und (falls nötig) die Fernwartung.",
-/* TR_CONTINUE_NO_SWAP */
-"Ihre Festplatte ist sehr klein, aber sie können mit einer minimalen Auslagerungspartition weitermachen. (Mit Vorsicht benutzen).",
-/* TR_CURRENT_CONFIG */
-"Aktuelle Einstellung: %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Standard-Gateway:",
-/* TR_DEFAULT_GATEWAY_CR */
-"Standard-Gateway\n",
-/* TR_DEFAULT_LEASE */
-"Voreingestellte Haltezeit (min):",
-/* TR_DEFAULT_LEASE_CR */
-"Voreinstellung der Haltezeit\n",
-/* TR_DETECTED */
-"Gefunden wurde: %s",
-/* TR_DHCP_HOSTNAME */
-"DHCP-Hostname:",
-/* TR_DHCP_HOSTNAME_CR */
-"DHCP-Hostname\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"DHCP-Konfiguration",
-/* TR_DISABLED */
-"Deaktiviert",
-/* TR_DISABLE_ISDN */
-"ISDN deaktivieren",
-/* TR_DISK_TOO_SMALL */
-"Ihre Festplatte ist zu klein.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"DNS- und Gateway-Einstellungen",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"Geben Sie die DNS- und Gateway-Informationen ein. Diese Einstellungen werden nur bei einer statischen IP an der ROTEN Schnittstelle benutzt (und DHCP, falls DNS eingetragen wurde).",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Ihre Konfiguration benutzt keine Ethernet-Karte für die ROTE Schnittstelle. DNS- und Gateway-Informationen für  Einwahl- verbindungen werden automatisch beim Einwählen konfiguriert.",
-/* TR_DOMAINNAME */
-"Domainname",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Domain Name darf nicht leer sein.",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"Domainname darf keine Leerzeichen enthalten.",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Domain Name darf nur Buchstaben, Ziffern, Bindestriche und Punkte enthalten.",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Domainnamen-Suffix:",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Domainnamen-Suffix\n",
-/* TR_DONE */
-"Fertig",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\nMöchten Sie die Einstellungen ändern?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Treiber- und Karten-Zuordnungen",
-/* TR_ENABLED */
-"aktiviert",
-/* TR_ENABLE_ISDN */
-"ISDN aktivieren",
-/* TR_END_ADDRESS */
-"Endadresse:",
-/* TR_END_ADDRESS_CR */
-"Endadresse\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Einige ISDN-Karten (besonders ISA-Karten) benötigen zusätzliche Modulparameter, um die IRQ- und IO-Adress-Informationen einzustellen. Wenn Sie eine solche ISDN-Karte haben, geben Sie diese Parameter hier ein (z. B. \"io=0x280 irq=9\"). Sie werden dann bei der Erkennung der Karte berücksichtigt.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"Geben Sie das Passwort für den %s-Administrator 'admin' ein. Das ist der Benutzer, mit dem Sie sich an den %s-Webadministrationsseiten anmelden.",
-/* TR_ENTER_DOMAINNAME */
-"Bitte geben Sie den Domainnamen ein",
-/* TR_ENTER_HOSTNAME */
-"Geben Sie den Hostnamen des Rechners an:",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"Geben Sie die IP-Adressinformationen ein",
-/* TR_ENTER_NETWORK_DRIVER */
-"Kann die Netzwerkkarte nicht automatisch erkennen. Geben Sie den Modulnamen und eventuelle Parameter für die Netzwerkkarte an.",
-/* TR_ENTER_ROOT_PASSWORD */
-"Geben Sie das Passwort für den Benutzer 'root' ein. Melden Sie sich als dieser Benutzer an, um Zugriff auf die Befehlszeile zu erhalten.",
-/* TR_ENTER_SETUP_PASSWORD */
-"Geben Sie das Passwort für den Benutzer 'setup' ein. Melden Sie sich als dieser Benutzer an, um das Setup-Programm zu starten.",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"Geben Sie die IP-Adressinformationen für die folgende Schnittstelle ein - %s.",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Geben Sie Ihre lokale Telefonnummer ein (MSN/EAZ):",
-/* TR_ENTER_URL */
-"Geben Sie die URL für ipcop-<version>.tgz und die images/scsidrv-<version>.img-Dateien ein. WARNUNG: DNS ist nicht verfügbar! Sie sollten jetzt nur etwas im Format 'http://X.X.X.X/<verzeichnis>' eingeben. ",
-/* TR_ERROR */
-"Fehler",
-/* TR_ERROR_PROBING_CDROM */
-"Kein CDROM-Laufwerk gefunden.",
-/* TR_ERROR_WRITING_CONFIG */
-"Fehler beim Schreiben der Konfigurationsinformationen.",
-/* TR_EURO_EDSS1 */
-"DSS1 (Euro-ISDN) (meist richtig)",
-/* TR_EXTRACTING_MODULES */
-"Entpacke die Module...",
-/* TR_FAILED_TO_FIND */
-"Konnte die URL-Datei nicht finden.",
-/* TR_FOUND_NIC */
-"%s hat den folgenden NIC in Ihrer Maschine erkannt: %s",
-/* TR_GERMAN_1TR6 */
-"1TR6",
-/* TR_HELPLINE */
-"       <Tab>/<Alt-Tab> wechselt zwischen Elementen | <Leertaste> wählt aus",
-/* TR_HOSTNAME */
-"Hostname",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Der Hostname darf nicht leer sein.",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Der Hostname darf keine Leerzeichen enthalten.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"Hostname darf nur Buchstaben, Ziffern und Bindestriche enthalten.",
-/* TR_INITIALISING_ISDN */
-"Initialisiere ISDN...",
-/* TR_INSERT_CDROM */
-"Legen Sie bitte die %s CD in das CD-ROM-Laufwerk ein.",
-/* TR_INSERT_FLOPPY */
-"Legen Sie bitte die %s-Treiberdiskette in das Diskettenlaufwerk ein.",
-/* TR_INSTALLATION_CANCELED */
-"Installation abgebrochen.",
-/* TR_INSTALLING_FILES */
-"Installiere Dateien...",
-/* TR_INSTALLING_GRUB */
-"Installiere GRUB...",
-/* TR_INSTALLING_LANG_CACHE */
-"Installiere Sprachunterstützung...",
-/* TR_INTERFACE */
-"Schnittstelle - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"Schnittstelle konnte nicht aktiviert werden.",
-/* TR_INVALID_FIELDS */
-"Die folgenden Felder sind ungültig:\n\n",
-/* TR_INVALID_IO */
-"Die angegebenen Einstellungen für den IO-Port sind ungültig. ",
-/* TR_INVALID_IRQ */
-"Die eingegebenen IRQ-Einstellungen sind ungültig.",
-/* TR_IP_ADDRESS_CR */
-"IP-Adresse\n",
-/* TR_IP_ADDRESS_PROMPT */
-"IP-Adresse:",
-/* TR_ISDN_CARD */
-"ISDN-Karte",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"Keine ISDN-Karte gefunden. Möglicherweise müssen Sie zusätzliche Modulparameter angeben, wenn es sich um eine ISA-Karte handelt oder die Karte spezielle Anforderungen hat.",
-/* TR_ISDN_CARD_SELECTION */
-"Auswahl der ISDN-Karte",
-/* TR_ISDN_CONFIGURATION */
-"ISDN-Konfiguration",
-/* TR_ISDN_CONFIGURATION_MENU */
-"ISDN-Konfigurationsmenü",
-/* TR_ISDN_NOT_SETUP */
-"ISDN nicht eingestellt. Einige Parameter wurden nicht ausgewählt.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"ISDN wurde noch nicht konfiguriert. Wählen Sie aus, was Sie konfigurieren möchten.",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"Auswahl des ISDN-Protokolls",
-/* TR_ISDN_STATUS */
-"ISDN ist momentan %s.\n\n   Protokoll: %s\n   Karte: %s\n   Lokale Telefonnummer: %s\n\nWählen Sie aus, was Sie konfigurieren möchten, oder verwerfen Sie die aktuellen Einstellungen.",
-/* TR_KEYBOARD_MAPPING */
-"Tastatur-Layout",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Wählen Sie aus dieser Liste den Tastatur-Typ aus, den Sie benutzen.",
-/* TR_LEASED_LINE */
-"Standleitung (leased line)",
-/* TR_LOADING_MODULE */
-"Lade Modul...",
-/* TR_LOADING_PCMCIA */
-"PCMCIA-Module werden geladen...",
-/* TR_LOOKING_FOR_NIC */
-"Suche nach: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Erstelle das Boot-Dateisystem...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Erstelle das Log-Dateisystem...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Erstelle das Root-Dateisystem...",
-/* TR_MAKING_SWAPSPACE */
-"Erstelle Swap-Partition...",
-/* TR_MANUAL */
-"* MANUELL *",
-/* TR_MAX_LEASE */
-"Maximale Haltezeit (min):",
-/* TR_MAX_LEASE_CR */
-"Maximale Haltezeit\n",
-/* TR_MISSING_BLUE_IP */
-"Fehlende IP-Information für das BLAUE Interface.",
-/* TR_MISSING_ORANGE_IP */
-"IP-Informationen für die ORANGE Schnittstelle fehlen.",
-/* TR_MISSING_RED_IP */
-"IP-Informationen für die ROTE Schnittstelle fehlen.",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"Der Modulname darf nicht leer sein.",
-/* TR_MODULE_PARAMETERS */
-"Geben Sie den Modulnamen und die Parameter für den benötigten Treiber an.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Mounte das Boot-Dateisystem...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Mounte das Log-Dateisystem...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Mounte das Root-Dateisystem...",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Mounte die Swap-Partition...",
-/* TR_MSN_CONFIGURATION */
-"Lokale Telefonnummer (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Subnetzmaske:",
-/* TR_NETWORKING */
-"Netzwerk",
-/* TR_NETWORK_ADDRESS_CR */
-"Netzwerkadresse\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Netzwerkadresse:",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Netzwerkkonfiguration",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Typ der Netzwerkkonfiguration",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"Wählen Sie die Netzwerkkonfiguration für %s aus. Die folgenden Konfigurationstypen listen diejenigen Schnittstellen auf, die am Ethernet angeschlossen sind. Wenn Sie diese Einstellung ändern, muss das Netzwerk neu gestartet werden und Sie müssen die Netzwerktreiber neu zuweisen.",
-/* TR_NETWORK_MASK_CR */
-"Subnetzmaske\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Netzwerk-Setup fehlgeschlagen.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"Nicht genügend Karten wurden zugeordnet.",
-/* TR_NO_BLUE_INTERFACE */
-"Kein BLAUES Interface zugeordnet.",
-/* TR_NO_CDROM */
-"Kein CD-ROM gefunden.",
-/* TR_NO_GREEN_INTERFACE */
-"Keine GRÜNE Schnittstelle zugewiesen.",
-/* TR_NO_HARDDISK */
-"Keine Festplatte gefunden.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"Auf dem Webserver wurde kein ipcop-Tarball gefunden.",
-/* TR_NO_ORANGE_INTERFACE */
-"Keine ORANGE Schnittstelle zugewiesen.",
-/* TR_NO_RED_INTERFACE */
-"Keine ROTE Schnittstelle zugewiesen.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"Auf dem Webserver wurde kein SCSI-Image gefunden.",
-/* TR_NO_UNALLOCATED_CARDS */
-"Es sind keine nicht zugeteilten Karten übrig; es werden aber noch mehr benötigt. Sie könnten einen Treiber aus der Liste auswählen oder eine automatische Erkennung starten.",
-/* TR_OK */
-"Ok",
-/* TR_PARTITIONING_DISK */
-"Partitioniere die Festplatte...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Die Passwörter stimmen nicht überein.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"Die Passwörter dürfen nicht leer sein.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"Das Passwort darf keine Leerzeichen enthalten.",
-/* TR_PASSWORD_PROMPT */
-"Passwort:",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Die Telefonnummer darf nicht leer sein.",
-/* TR_PREPARE_HARDDISK */
-"Das Installationsprogramm wird jetzt die Festplatte %s vorbereiten. Zunächst wird die Festplatte partitioniert. Danach wird auf den Partitionen ein Dateisystem erstellt.\n\nALLE DATEN AUF DEM LAUFWERK WERDEN GELÖSCHT. Einverstanden?",
-/* TR_PRESS_OK_TO_REBOOT */
-"Drücken Sie Ok, um neu zu starten.",
-/* TR_PRIMARY_DNS */
-"Primärer DNS:",
-/* TR_PRIMARY_DNS_CR */
-"Primärer DNS\n",
-/* TR_PROBE */
-"Automatische Erkennung",
-/* TR_PROBE_FAILED */
-"Automatische Erkennung fehlgeschlagen.",
-/* TR_PROBING_HARDWARE */
-"Hardwareerkennung läuft...",
-/* TR_PROBING_FOR_NICS */
-"Netzwerkkartenerkennung läuft...",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"Problem beim Setzen des %s Administrator-Passworts.",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"Problem beim Setzen des 'root'-Passworts.",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"Problem beim Setzen des 'setup'-Passworts.",
-/* TR_PROTOCOL_COUNTRY */
-"Protokoll/Land",
-/* TR_PULLING_NETWORK_UP */
-"Starte Netzwerk...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Fahre Netzwerk herunter...",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Fahre nicht-lokales Netzwerk herunter...",
-/* TR_QUIT */
-"Beenden",
-/* TR_RED_IN_USE */
-"ISDN (oder eine andere externe Verbindung) wird momentan benutzt. Sie können ISDN nicht konfigurieren, während die ROTE Schnittstelle aktiv ist.",
-/* TR_RESTART_REQUIRED */
-"\n\nWenn die Konfiguration komplett ist, muss das Netzwerk neu gestartet werden.",
-/* TR_RESTORE */
-"Wiederherstellen",
-/* TR_RESTORE_CONFIGURATION */
-"Falls Sie eine Diskette mit %s-Systemeinstellungen haben, legen Sie die Diskette in das Floppylaufwerk und \ndrücken auf <Wiederherstellen>",
-/* TR_ROOT_PASSWORD */
-"'root'-Passwort",
-/* TR_SECONDARY_DNS */
-"Sekundärer DNS:",
-/* TR_SECONDARY_DNS_CR */
-"Sekundärer DNS\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"Sekundären DNS angegeben ohne primären DNS",
-/* TR_SECTION_MENU */
-"Auswahlmenu",
-/* TR_SELECT */
-"Auswählen",
-/* TR_SELECT_CDROM_TYPE */
-"Wählen Sie den Typ des CD-ROM-Laufwerks aus",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"Es wurde kein CD-ROM-Laufwerk in diesem Rechner gefunden. Bitte wählen Sie aus, welchen der folgenden Treiber Sie benutzen möchten, damit %s das CD-ROM-Laufwerk ansprechen kann.",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Wählen Sie das Installationsmedium",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s kann von verschiedenen Programmquellen installiert werden.  Am einfachsten ist, Sie benutzen das eingebaute CD-ROM-Laufwerk. Falls der Computer kein CD-ROM-Laufwerk besitzt, können Sie von einem anderen Rechner im LAN installieren, der die Installationsdateien per HTTP oder FTP zur Verfügung stellt.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Wählen Sie den Netzwerktreiber aus",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Wählen Sie den Treiber für die in diesem Rechner eingebaute Netzwerkkarte aus. Wenn Sie MANUELL auswählen, können Sie den Modulnamen des Treibers  und die Parameter selbst angeben (z. B. für Treiber mit speziellen Anforderungen, wie bei ISA-Karten).",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Wählen Sie die Schnittstelle aus, die Sie neu konfigurieren möchten.",
-/* TR_SELECT_THE_ITEM */
-"Wählen Sie den Punkt aus, den Sie konfigurieren möchten:",
-/* TR_SETTING_ADMIN_PASSWORD */
-"Setze %s-Administrator-Passwort....",
-/* TR_SETTING_ROOT_PASSWORD */
-"Setze 'root'-Passwort....",
-/* TR_SETTING_SETUP_PASSWORD */
-"Setze 'setup'-Passwort...",
-/* TR_SETUP_FINISHED */
-"Das Setup ist vollständig beendet. Drücken Sie Ok.",
-/* TR_SETUP_NOT_COMPLETE */
-"Das erste Setup wurde nicht vollständig durchgeführt. Sie müssen Setup vollständig beenden; dies können Sie durch Ausführen von Setup in der Shell nachholen.",
-/* TR_SETUP_PASSWORD */
-"'setup'-Passwort",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Zusätzliche Modulparameter angeben",
-/* TR_SINGLE_GREEN */
-"In ihrer Konfiguration ist eine GRÜNE Schnittstelle eingestellt.",
-/* TR_SKIP */
-"Überspringen",
-/* TR_START_ADDRESS */
-"Anfangsadresse:",
-/* TR_START_ADDRESS_CR */
-"Anfangsadressen\n",
-/* TR_STATIC */
-"Statisch",
-/* TR_SUGGEST_IO */
-"(schlage vor %x)",
-/* TR_SUGGEST_IRQ */
-"(schlage vor %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"Dieses Treibermodul ist bereits geladen.",
-/* TR_TIMEZONE */
-"Zeitzone",
-/* TR_TIMEZONE_LONG */
-"Wählen Sie die Zeitzone aus, in der Sie sich befinden.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"Kann die CD-ROM nicht auswerfen.",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Module können nicht extrahiert werden.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Kann keine weiteren Treiber finden.",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Kann keine ISDN-Karte in diesem Computer finden. Möglicherweise müssen Sie zusätzliche Modulparameter angeben, wenn es sich um eine ISA-Karte handelt oder die Karte spezielle Anforderungen hat.",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"Kann ISDN nicht initialisieren.",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Kann die Dateien nicht installieren.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Kann Sprachunterstützung nicht installieren.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"Kann GRUB nicht installieren.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Kann Treibermodul nicht laden.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Kann das Boot-Dateisystem nicht erstellen.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Kann das Log-Dateisystem nicht erstellen.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Kann das Root-Dateisystem nicht erstellen.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Kann Swap-Partition nicht erstellen.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Kann symbolischen Link /dev/harddisk nicht anlegen.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Kann symbolischen Link /dev/harddisk1 nicht anlegen.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Kann symbolischen Link /dev/harddisk2 nicht anlegen.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Kann symbolischen Link /dev/harddisk3 nicht anlegen.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Kann symbolischen Link /dev/harddisk4 nicht anlegen.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Symlink /dev/root kann nicht erzeugt werden.",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Kann das Root-Dateisystem nicht mounten.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Kann das Log-Dateisystem nicht mounten.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Das proc-Dateisystem kann nicht gemountet werden.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Kann das Root-Dateisystem nicht mounten.",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Kann die Swap-Partition nicht unmounten.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Kann primäre hosts-Datei nicht öffnen.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Kann Datei mit Einstellungen nicht öffnen",
-/* TR_UNABLE_TO_PARTITION */
-"Kann die Festplatte nicht partitionieren.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Kann temporär heruntergeladene Dateien nicht löschen.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Kann Hostnamen nicht setzen.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"Kann die CD-ROM bzw. Floppy nicht unmounten.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Kann die Festplatte nicht unmounten.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Kann /etc/fstab nicht schreiben",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Kann /etc/hostname nicht schreiben",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Kann /etc/hosts nicht schreiben.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Kann /etc/hosts.allow nicht schreiben.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Kann /etc/hosts.deny nicht schreiben.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Kann %s/ethernet/settings nicht schreiben.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Kann %s/main/hostname.conf nicht schreiben",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Kann %s/main/settings nicht schreiben.",
-/* TR_UNCLAIMED_DRIVER */
-"Es gibt eine nicht zugeordnete Ethernet-Karte des Typs:\n%s\n\nSie können sie zuweisen an:",
-/* TR_UNKNOWN */
-"UNBEKANNT",
-/* TR_UNSET */
-"NICHT GESETZT",
-/* TR_USB_KEY_VFAT_ERR */
-"Dieser USB-Stick ist ungültig (keine VFAT Partiton gefunden).",
-/* TR_US_NI1 */
-"US NI1",
-/* TR_WARNING */
-"WARNUNG",
-/* TR_WARNING_LONG */
-"Wenn Sie diese IP-Adresse ändern, während Sie über den Fernwartungszugang zugreifen, wird die Verbindung zum %s-Rechner abbrechen. Sie müssen dann eine Verbindung zur neuen IP-Adresse aufbauen. Dies ist ein riskanter Vorgang, der nur versucht werden sollte, wenn Sie physikalischen Zugriff auf den Rechner haben, für den Fall, dass etwas schief geht.",
-/* TR_WELCOME */
-"Willkommen zum %s Installationsprogramm. Wenn Sie auf irgendeiner der folgenden Seiten 'Abbrechen' auswählen, wird der Computer neu gestartet.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Ihre Konfiguration ist für eine einzelne GRÜNE Schnittstelle eingestellt, der bereits ein Treiber zugewiesen ist.",
-/* TR_YES */
-"Ja",
-/* TR_NO */
-"Nein",
-/* TR_AS */
-"als",
-/* TR_IGNORE */
-"Ignorieren",
-/* TR_PPP_DIALUP */
-"PPP Einwahl (PPPoE, Modem, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"Starte den DHCP-Server ...",
-/* TR_DHCP_STOPSERVER */
-"Stoppe den DHCP-Server ...",
-/* TR_LICENSE_ACCEPT */
-"Ich akzeptiere diese Lizenz.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"Die Lizenz wurde nicht akzeptiert. Abbruch!",
-/* TR_EXT2FS_DESCR */
-"Ext2 - Dateisystem ohne Journal (empfohlen für Flash)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - Dateisystem mit Journal",
-/* TR_EXT4FS_DESCR */
-"Ext4 - Dateisystem mit Journal",
-/* TR_REISERFS_DESCR */
-"ReiserFS - Dateisystem mit Journal",
-/* TR_NO_LOCAL_SOURCE */
-"Kein lokales Quellmedium gefunden. Starte Download.",
-/* TR_DOWNLOADING_ISO */
-"Lade Installations-Abbild ...",
-/* TR_DOWNLOAD_ERROR */
-"Beim Herunterladen ist ein Fehler aufgetreten!",
-/* TR_DHCP_FORCE_MTU */
-"DHCP MTU setzen:",
-/* TR_IDENTIFY */
-"Identifizieren",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Die Leds dieses Netzwerkports sollten jetzt blinken ...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"Dieser Netzwerkport untestützt die Funktion leider nicht.",
-};
diff --git a/langs/en/install/lang_en.c b/langs/en/install/lang_en.c
deleted file mode 100644 (file)
index 12ac4b5..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * English (en) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPCop is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPCop 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPCop; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- * 
- * (c) IPFire Team  <info@ipfire.org>
- *
- * based on work of SmoothWall and IPCop
- *
- * (c) The SmoothWall Team
- *  
- */
-#include "libsmooth.h"
-
-char *en_tr[] = {
-
-/* TR_ISDN */
-"ISDN",
-/* TR_ERROR_PROBING_ISDN */
-"Unable to scan for ISDN devices.",
-/* TR_PROBING_ISDN */
-"Scanning and configuring ISDN devices.",
-/* TR_MISSING_GREEN_IP */
-"Missing Green IP!",
-/* TR_CHOOSE_FILESYSTEM */
-"Please choose your filesystem:",
-/* TR_NOT_ENOUGH_INTERFACES */
-"Not enough netcards for your choice.\n\nNeeded: %d - Available: %d\n",
-/* TR_INTERFACE_CHANGE */
-"Please choose the interface you wish to change.\n\n",
-/* TR_NETCARD_COLOR */
-"Assigned Cards",
-/* TR_REMOVE */
-"Remove",
-/* TR_MISSING_DNS */
-"Misssing DNS.\n",
-/* TR_MISSING_DEFAULT */
-"Missing Default Gateway.\n",
-/* TR_JOURNAL_EXT3 */
-"Creating journal for Ext3...",
-/* TR_CHOOSE_NETCARD */
-"Please choose a networkcard for the following interface - %s.",
-/* TR_NETCARDMENU2 */
-"Extended Networkmenu",
-/* TR_ERROR_INTERFACES */
-"There are no free interfaces on your system.",
-/* TR_REMOVE_CARD */
-"Should the allocation for the networkcard be deleted? - %s",
-/* TR_JOURNAL_ERROR */
-"Could not create the journal, using fallback to ext2.",
-/* TR_FILESYSTEM */
-"Choose Filesystem",
-/* TR_ADDRESS_SETTINGS */
-"Address settings",
-/* TR_ADMIN_PASSWORD */
-"'admin' password",
-/* TR_AGAIN_PROMPT */
-"Again:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"All cards successfully allocated.",
-/* TR_AUTODETECT */
-"* AUTODETECT *",
-/* TR_BUILDING_INITRD */
-"Building ramdisk...",
-/* TR_CANCEL */
-"Cancel",
-/* TR_CARD_ASSIGNMENT */
-"Card assignment",
-/* TR_CHECKING */
-"Checking URL...",
-/* TR_CHECKING_FOR */
-"Checking for: %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Choose the ISDN card installed in this computer.",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"Choose the ISDN protocol you require.",
-/* TR_CONFIGURE_DHCP */
-"Configure the DHCP server by entering the settings information.",
-/* TR_CONFIGURE_NETWORKING */
-"Configure networking",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"You should now configure networking by first loading the correct driver for the GREEN interface. You can do this by either auto-probing for a network card, or by choosing the correct driver from a list. Note that if you have more then one network card installed, you will be able to configure the others later on in the installation. Also note that if you have more then one card which is the same type as GREEN and each card requires special module parameters, you should enter parameters for all cards of this type such that all cards can become active when you configure the GREEN interface.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Configure network drivers, and which interface each card is assigned to.  The current configuration is as follows:\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Configure the CDROM by choosing the appropriate IO address and/or IRQ.",
-/* TR_CONGRATULATIONS */
-"Congratulations!",
-/* TR_CONGRATULATIONS_LONG */
-"%s was successfully installed. Please remove any CDROMs in the computer. Setup will now run where you may configure ISDN, network cards, and the system passwords. After Setup has been completed, you should point your web browser at https://%s:444 (or whatever you name your %s), and configure dialup networking (if required) and remote access.",
-/* TR_CONTINUE_NO_SWAP */
-"Your harddisk is very small, but you can continue with an very small swap. (Use with caution).",
-/* TR_CURRENT_CONFIG */
-"Current config: %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Default Gateway:",
-/* TR_DEFAULT_GATEWAY_CR */
-"Default Gateway\n",
-/* TR_DEFAULT_LEASE */
-"Default lease (mins):",
-/* TR_DEFAULT_LEASE_CR */
-"Default lease time\n",
-/* TR_DETECTED */
-"Detected a: %s",
-/* TR_DHCP_HOSTNAME */
-"DHCP Hostname:",
-/* TR_DHCP_HOSTNAME_CR */
-"DHCP Hostname\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"DHCP server configuration",
-/* TR_DISABLED */
-"Disabled",
-/* TR_DISABLE_ISDN */
-"Disable ISDN",
-/* TR_DISK_TOO_SMALL */
-"Your harddisk is too small.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"DNS and Gateway settings",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"Enter the DNS and gateway information.  These settings are used only with Static IP (and DHCP if DNS set) on the RED interface.",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Your configuration does not utilise an ethernet adaptor for its RED interface.  DNS and Gateway information for dialup users is configured automatically at dialup time.",
-/* TR_DOMAINNAME */
-"Domain name",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Domain name cannot be empty.",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"Domain name cannot contain spaces.",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Domain name may only contain letters, numbers, hyphens and periods.",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Domain name suffix:",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Domain name suffix\n",
-/* TR_DONE */
-"Done",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\nDo you wish to change these settings?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Drivers and card assignments",
-/* TR_ENABLED */
-"Enabled",
-/* TR_ENABLE_ISDN */
-"Enable ISDN",
-/* TR_END_ADDRESS */
-"End address:",
-/* TR_END_ADDRESS_CR */
-"End address\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Some ISDN cards (especially ISA ones) may require additional module parameters for setting IRQ and IO address information. If you have such a ISDN card, enter these extra parameters here. For example: \"io=0x280 irq=9\". They will be used during card detection.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"Enter %s 'admin' user password.  This is the user to use for logging into the %s web administration pages.",
-/* TR_ENTER_DOMAINNAME */
-"Enter Domain name",
-/* TR_ENTER_HOSTNAME */
-"Enter the machine's hostname.",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"Enter the IP address information",
-/* TR_ENTER_NETWORK_DRIVER */
-"Failed to detect a network card automatically. Enter the driver and optional parameters for the network card.",
-/* TR_ENTER_ROOT_PASSWORD */
-"Enter the 'root' user password. Login as this user for commandline access.",
-/* TR_ENTER_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"Enter the IP address information for the %s interface.",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Enter the local phone number (MSN/EAZ).",
-/* TR_ENTER_URL */
-"Enter the URL path to the ipcop-<version>.tgz and images/scsidrv-<version>.img files. WARNING: DNS not available! This should now just be http://X.X.X.X/<directory>",
-/* TR_ERROR */
-"Error",
-/* TR_ERROR_PROBING_CDROM */
-"No CDROM drive found.",
-/* TR_ERROR_WRITING_CONFIG */
-"Error writing configuration information.",
-/* TR_EURO_EDSS1 */
-"Euro (EDSS1)",
-/* TR_EXTRACTING_MODULES */
-"Extracting modules...",
-/* TR_FAILED_TO_FIND */
-"Failed to find URL file.",
-/* TR_FOUND_NIC */
-"%s has detected the following NIC in your machine: %s",
-/* TR_GERMAN_1TR6 */
-"German 1TR6",
-/* TR_HELPLINE */
-"              <Tab>/<Alt-Tab> between elements   |  <Space> selects",
-/* TR_HOSTNAME */
-"Hostname",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Hostname cannot be empty.",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Hostname cannot contain spaces.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"Hostname may only contain letters, numbers and hyphens.",
-/* TR_INITIALISING_ISDN */
-"Initialising ISDN...",
-/* TR_INSERT_CDROM */
-"Please insert the %s CD in the CDROM drive.",
-/* TR_INSERT_FLOPPY */
-"Please insert the %s driver diskette in the floppy drive.",
-/* TR_INSTALLATION_CANCELED */
-"Installation cancelled.",
-/* TR_INSTALLING_FILES */
-"Installing files...",
-/* TR_INSTALLING_GRUB */
-"Installing GRUB...",
-/* TR_INSTALLING_LANG_CACHE */
-"Installing language files...",
-/* TR_INTERFACE */
-"Interface - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"Interface failed to come up.",
-/* TR_INVALID_FIELDS */
-"The following fields are invalid:\n\n",
-/* TR_INVALID_IO */
-"The IO port details entered are invalid. ",
-/* TR_INVALID_IRQ */
-"The IRQ details entered are invalid.",
-/* TR_IP_ADDRESS_CR */
-"IP address\n",
-/* TR_IP_ADDRESS_PROMPT */
-"IP address:",
-/* TR_ISDN_CARD */
-"ISDN card",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"ISDN card not detected. You may need to specify additional module parameters if the card is an ISA type or it has special requirements.",
-/* TR_ISDN_CARD_SELECTION */
-"ISDN card selection",
-/* TR_ISDN_CONFIGURATION */
-"ISDN Configuration",
-/* TR_ISDN_CONFIGURATION_MENU */
-"ISDN configuration menu",
-/* TR_ISDN_NOT_SETUP */
-"ISDN not setup. Some items have not been selected.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"ISDN has not yet been configured. Select the item you wish to configure.",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"ISDN protocol selection",
-/* TR_ISDN_STATUS */
-"ISDN is currently %s.\n\n   Protocol: %s\n   Card: %s\n   Local phone number: %s\n\nSelect the item you wish to reconfigure, or choose to use the current settings.",
-/* TR_KEYBOARD_MAPPING */
-"Keyboard mapping",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Choose the type of keyboard you are using from the list below.",
-/* TR_LEASED_LINE */
-"Leased line",
-/* TR_LOADING_MODULE */
-"Loading module...",
-/* TR_LOADING_PCMCIA */
-"Loading PCMCIA modules...",
-/* TR_LOOKING_FOR_NIC */
-"Looking for: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Making boot filesystem...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Making log filesystem...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Making root filesystem...",
-/* TR_MAKING_SWAPSPACE */
-"Making swap space...",
-/* TR_MANUAL */
-"* MANUAL *",
-/* TR_MAX_LEASE */
-"Max lease (mins):",
-/* TR_MAX_LEASE_CR */
-"Max lease time\n",
-/* TR_MISSING_BLUE_IP */
-"Missing IP information on the BLUE interface.",
-/* TR_MISSING_ORANGE_IP */
-"Missing IP information on the ORANGE interface.",
-/* TR_MISSING_RED_IP */
-"Missing IP information on the RED interface.",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"Module name cannot be blank.",
-/* TR_MODULE_PARAMETERS */
-"Enter the module name and parameters for the driver you require.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Mounting boot filesystem...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Mounting log filesystem...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Mounting root filesystem...",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Mounting swap partition...",
-/* TR_MSN_CONFIGURATION */
-"Local phone number (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Network mask:",
-/* TR_NETWORKING */
-"Networking",
-/* TR_NETWORK_ADDRESS_CR */
-"Network address\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Network address:",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Network configuration menu",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Network configuration type",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"Select the network configuration for %s.  The following configuration types list those interfaces which have ethernet attached. If you change this setting, a network restart will be required, and you will have to reconfigure the network driver assignments.",
-/* TR_NETWORK_MASK_CR */
-"Network mask\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Network setup failed.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"Not enough cards were allocated.",
-/* TR_NO_BLUE_INTERFACE */
-"No BLUE interface assigned.",
-/* TR_NO_CDROM */
-"No CD-ROM found.",
-/* TR_NO_GREEN_INTERFACE */
-"No GREEN interface assigned.",
-/* TR_NO_HARDDISK */
-"No hard disk found.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"No ipcop tarball found on Web Server.",
-/* TR_NO_ORANGE_INTERFACE */
-"No ORANGE interface assigned.",
-/* TR_NO_RED_INTERFACE */
-"No RED interface assigned.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"No SCSI image found on Web Server.",
-/* TR_NO_UNALLOCATED_CARDS */
-"No unallocated cards remaining, more are required. You may autodetect and look for more cards, or choose to select a driver from the list.",
-/* TR_OK */
-"Ok",
-/* TR_PARTITIONING_DISK */
-"Partitioning disk...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Passwords do not match.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"Password cannot be blank.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"Password cannot contain spaces.",
-/* TR_PASSWORD_PROMPT */
-"Password:",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Phone number cannot be empty.",
-/* TR_PREPARE_HARDDISK */
-"The installation program will now prepare the harddisk on %s. First the disk will be partitioned, and then the partitions will have a filesystem put on them.\n\nALL DATA ON THE DISK WILL BE DESTROYED. Do you agree to continue?",
-/* TR_PRESS_OK_TO_REBOOT */
-"Press Ok to reboot.",
-/* TR_PRIMARY_DNS */
-"Primary DNS:",
-/* TR_PRIMARY_DNS_CR */
-"Primary DNS\n",
-/* TR_PROBE */
-"Probe",
-/* TR_PROBE_FAILED */
-"Auto detecting failed.",
-/* TR_PROBING_HARDWARE */
-"Probing hardware...",
-/* TR_PROBING_FOR_NICS */
-"Probing for NICs...",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"Problem setting %s 'admin' user password.",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"Problem setting 'root' password.",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_PROTOCOL_COUNTRY */
-"Protocol/Country",
-/* TR_PULLING_NETWORK_UP */
-"Pulling network up...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Pushing network down...",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Pushing non local network down...",
-/* TR_QUIT */
-"Quit",
-/* TR_RED_IN_USE */
-"ISDN (or another external connection) is currently in use.  You may not configure ISDN while the RED interface is active.",
-/* TR_RESTART_REQUIRED */
-"\n\nWhen configuration is complete, a network restart will be required.",
-/* TR_RESTORE */
-"Restore",
-/* TR_RESTORE_CONFIGURATION */
-"If you have a floppy with an %s system configuration on it, place the floppy in the floppy drive and press the Restore button.",
-/* TR_ROOT_PASSWORD */
-"'root' password",
-/* TR_SECONDARY_DNS */
-"Secondary DNS:",
-/* TR_SECONDARY_DNS_CR */
-"Secondary DNS\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"Secondary DNS specified without a Primary DNS",
-/* TR_SECTION_MENU */
-"Section menu",
-/* TR_SELECT */
-"Select",
-/* TR_SELECT_CDROM_TYPE */
-"Select CDROM type",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"No CD-ROM was detected in this machine.  Please select which of the following drivers you wish to use so that %s can access the CD-ROM.",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Select installation media",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s can be installed from multiple sources.  The simplest is to use the machines CDROM drive. If the computer lacks a drive, you may install via another machine on the LAN which has the installation files available via HTTP or FTP.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Select network driver",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Select the network driver for the card installed in this machine. If you select MANUAL, you will be given an opportunity to enter the driver module name and parameters for drivers which have special requirements, such as ISA cards.",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Select the interface you wish to reconfigure.",
-/* TR_SELECT_THE_ITEM */
-"Select the item you wish to configure.",
-/* TR_SETTING_ADMIN_PASSWORD */
-"Setting %s 'admin' user password...",
-/* TR_SETTING_ROOT_PASSWORD */
-"Setting 'root' password....",
-/* TR_SETTING_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_SETUP_FINISHED */
-"Setup is complete.  Press Ok.",
-/* TR_SETUP_NOT_COMPLETE */
-"Initial setup was not entirely complete.  You must ensure that Setup is properly finished by running setup again at the shell.",
-/* TR_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Set additional module parameters",
-/* TR_SINGLE_GREEN */
-"Your configuration is set for a single GREEN interface.",
-/* TR_SKIP */
-"Skip",
-/* TR_START_ADDRESS */
-"Start address:",
-/* TR_START_ADDRESS_CR */
-"Start address\n",
-/* TR_STATIC */
-"Static",
-/* TR_SUGGEST_IO */
-"(suggest %x)",
-/* TR_SUGGEST_IRQ */
-"(suggest %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"This driver module is already loaded.",
-/* TR_TIMEZONE */
-"Timezone",
-/* TR_TIMEZONE_LONG */
-"Choose the timezone you are in from the list below.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"Unable to eject the CDROM.",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Unable to extract modules.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Unable to find any additional drivers.",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Unable to find an ISDN card in this computer. You may need to specify additional module parameters if the card is an ISA type or it has special requirements.",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"Unable to initialise ISDN.",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Unable to install files.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Unable to install language files.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"Unable to install GRUB.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Unable to load driver module.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Unable to make boot filesystem.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Unable to make log filesystem.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Unable to make root filesystem.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Unable to make swap space.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Unable to create symlink /dev/harddisk.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Unable to create symlink /dev/harddisk1.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Unable to create symlink /dev/harddisk2.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Unable to create symlink /dev/harddisk3.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Unable to create symlink /dev/harddisk4.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Unable to create symlink /dev/root.",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Unable to mount boot filesystem.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Unable to mount log filesystem.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Unable to mount proc filesystem.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Unable to mount root filesystem.",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Unable to mount the swap partition.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Unable to open main hosts file.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Unable to open settings file",
-/* TR_UNABLE_TO_PARTITION */
-"Unable to partition the disk.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Unable to remove temporary downloaded files.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Unable to set hostname.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"Unable to unmount the CDROM/floppydisk.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Unable to unmount harddisk.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Unable to write /etc/fstab",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Unable to write /etc/hostname",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Unable to write /etc/hosts.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Unable to write /etc/hosts.allow.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Unable to write /etc/hosts.deny.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Unable to write %s/ethernet/settings.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Unable to write %s/main/hostname.conf",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Unable to write %s/main/settings.",
-/* TR_UNCLAIMED_DRIVER */
-"There is an unclaimed ethernet card of type:\n%s\n\nYou can assign this to:",
-/* TR_UNKNOWN */
-"UNKNOWN",
-/* TR_UNSET */
-"UNSET",
-/* TR_USB_KEY_VFAT_ERR */
-"This USB key is invalid (no vfat partition found).",
-/* TR_US_NI1 */
-"US NI1",
-/* TR_WARNING */
-"WARNING",
-/* TR_WARNING_LONG */
-"If you change this IP address, and you are logged in remotely, your connection to the %s machine will be broken, and you will have to reconnect on the new IP. This is a risky operation, and should only be attempted if you have physical access to the machine, should something go wrong.",
-/* TR_WELCOME */
-"Welcome to the %s installation program. Selecting Cancel on any of the following screens will reboot the computer.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Your configuration is set for a single GREEN interface, which already has a driver assigned.",
-/* TR_YES */
-"Yes",
-/* TR_NO */
-"No",
-/* TR_AS */
-"as",
-/* TR_IGNORE */
-"Ignore",
-/* TR_PPP_DIALUP */
-"PPP DIALUP (PPPoE, modem, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"Starting DHCP-server ...",
-/* TR_DHCP_STOPSERVER */
-"Stopping DHCP-server ...",
-/* TR_LICENSE_ACCEPT */
-"I accept this license.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"License not accepted. Exit!",
-/* TR_EXT2FS_DESCR */
-"Ext2 - Filesystem without journal (suggested for flashdrives)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - Filesystem with journal",
-/* TR_EXT4FS_DESCR */
-"Ext4 - Filesystem with journal",
-/* TR_REISERFS_DESCR */
-"ReiserFS - Filesystem with journal",
-/* TR_NO_LOCAL_SOURCE */
-"No local source media found. Starting download.",
-/* TR_DOWNLOADING_ISO */
-"Downloading Installation-Image ...",
-/* TR_DOWNLOAD_ERROR */
-"Error while downloading!",
-/* TR_DHCP_FORCE_MTU */
-"Force DHCP mtu:",
-/* TR_IDENTIFY */
-"Identify",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Selected port should blink now ...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"Function is not supported by this port.",
-};
diff --git a/langs/es/install/lang_es.c b/langs/es/install/lang_es.c
deleted file mode 100644 (file)
index 4a08748..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- * Spanish (es) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPFire is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPFire 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPFire; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- *
- * (c) IPFire Team  <info@ipfire.org>
- *
- */
-#include "libsmooth.h"
-
-char *es_tr[] = {
-
-/* TR_ISDN */
-"ISDN",
-/* TR_ERROR_PROBING_ISDN */
-"Imposibe escanear dispositivos ISDN.",
-/* TR_PROBING_ISDN */
-"Buscando y configurando dispositivos ISDN.",
-/* TR_MISSING_GREEN_IP */
-"¡Hace falta la dirección ip en GREEN!",
-/* TR_CHOOSE_FILESYSTEM */
-"Por favor elija su sistema de Archivos:",
-/* TR_NOT_ENOUGH_INTERFACES */
-"No hay suficientes tarjetas de red para su selección.\n\nNecesarias: %d - Disponibles: %d\n",
-/* TR_INTERFACE_CHANGE */
-"Por favor elija la interfaz que desea modificar.\n\n",
-/* TR_NETCARD_COLOR */
-"Tarjetas de red asignadas",
-/* TR_REMOVE */
-"Remover",
-/* TR_MISSING_DNS */
-"Faltan DNS.\n",
-/* TR_MISSING_DEFAULT */
-"Falta la puerta de enlace por defecto.\n",
-/* TR_JOURNAL_EXT3 */
-"Creando journal para Ext3...",
-/* TR_CHOOSE_NETCARD */
-"Por favor elija una tarjeta de red para la siguiente interfaz  - %s.",
-/* TR_NETCARDMENU2 */
-"Menú de Red extendido",
-/* TR_ERROR_INTERFACES */
-"No hay interfaces libres en su sistema.",
-/* TR_REMOVE_CARD */
-"La ubicación de la tarjeta de red debería ser borrada? - %s",
-/* TR_JOURNAL_ERROR */
-"No se pudo crear el journal usando fallback a ext2.",
-/* TR_FILESYSTEM */
-"Seleccione el sistema de Archivos",
-/* TR_ADDRESS_SETTINGS */
-"Configuración de direcciones",
-/* TR_ADMIN_PASSWORD */
-"Contraseña 'admin'",
-/* TR_AGAIN_PROMPT */
-"Nuevamente:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"Todas las tarjetas se asignaron correctamente.",
-/* TR_AUTODETECT */
-"* AUTODETECTANDO *",
-/* TR_BUILDING_INITRD */
-"Construyendo ramdisk...",
-/* TR_CANCEL */
-"Cancelar",
-/* TR_CARD_ASSIGNMENT */
-"Asignación de Tarjetas",
-/* TR_CHECKING */
-"Revisando URL...",
-/* TR_CHECKING_FOR */
-"Probando : %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Seleccione el tipo de tarjeta ISDN instalada en este computador.",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"Seleccione el protocolo ISDN que ud. requiera.",
-/* TR_CONFIGURE_DHCP */
-"Configure el servidor DHCP introduciendo la siguiente información.",
-/* TR_CONFIGURE_NETWORKING */
-"Configuraciónes de Red",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"Ahora debería configurar la red primeramente cargando el driver correcto para la interfaz GREEN. Puede hacer esto, ya sea por medio de auto-detección de la tarjeta de red, o eligiendo el driver correcto de la lista. Tome en cuenta que si usted tiene mas de una tarjeta de red instalada, podrá configurar las demás posteriormente durante la instalación. También tenga en cuenta que si posee mas de una tarjeta que sea del mismo tipo que su interfaz GREEN, cada una requerirá parámetros de módulo especiales, los cuales debe introducir para cada una de las tarjetas, ya que todas las tarjetas se podrían activar cuando se configure la interfaz GREEN.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Configure los drivers de red, y a cual interfaz será asignada cada tarjeta. La configuración actual es la siguiente:\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Configure la unidad de CDROM eligiendo la dirección IO apropiada y/o la dirección IRQ.",
-/* TR_CONGRATULATIONS */
-"¡Felicidades!",
-/* TR_CONGRATULATIONS_LONG */
-"%s fué instalado exitosamente. Por favor retire cualquier CDROM de las unidades. La instalación se ejecutará ahora y usted podrá configurar las parámetros de ISDN, Tarjetas de red, y las contraseñas del sistema. Una vez que la instalación se halla completado usted podrá dirigir su navegador de internet a https://%s:444 (o a cualquiera que sea el nombre de su %s), y configurar la red por dialup (si fuese necesario) y el acceso remoto.",
-/* TR_CONTINUE_NO_SWAP */
-"Su disco duro es muy pequeño, pero podrá continuar un swap muy reducido (Use con precaución).",
-/* TR_CURRENT_CONFIG */
-"Configuración Actual: %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Puerta de enlace por defecto:",
-/* TR_DEFAULT_GATEWAY_CR */
-"Puerta de enlace por defecto\n",
-/* TR_DEFAULT_LEASE */
-"Default lease (mins):",
-/* TR_DEFAULT_LEASE_CR */
-"Default lease time\n",
-/* TR_DETECTED */
-"Se detectó: %s",
-/* TR_DHCP_HOSTNAME */
-"DHCP Hostname:",
-/* TR_DHCP_HOSTNAME_CR */
-"DHCP Hostname\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"Configuración de servidor DHCP",
-/* TR_DISABLED */
-"Desactivado",
-/* TR_DISABLE_ISDN */
-"Desactivar ISDN",
-/* TR_DISK_TOO_SMALL */
-"Su disco duro es muy pequeño.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"Configuraciones de DNS y Puerta de enlace(Gateway)",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"Introduzca la información de DNS y puerta de enlace predeterminado. Estas configuraciones sólo son utilizadas con IP estática (y DHCP si se configura el DNS) en la interfaz RED",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Su configuración no utiliza una interfaz ethernet para la interfaz RED. La información de Puerta de enlace y DNS para usuarios de dialup, es configurada automáticamente en el momento de marcar.",
-/* TR_DOMAINNAME */
-"Nombre de dominio",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Nombre de domino no puede estar vacío",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"El nombre de dominio no puede contener espacios",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Los nombres de dominio sólo pueden contener letras, números, guiones y guion_bajo",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Sufijo de nombre de dominio:",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Sufijo de nombre de dominio\n",
-/* TR_DONE */
-"Terminado",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\n¿Desea cambiar estas configuraciones?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Drivers y asignación de tarjeta",
-/* TR_ENABLED */
-"Activado",
-/* TR_ENABLE_ISDN */
-"Activar ISDN",
-/* TR_END_ADDRESS */
-"Dirección final:",
-/* TR_END_ADDRESS_CR */
-"Dirección final\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Algunas tarjetas ISDN (especialmente las ISA) pueden requerir parámetros adicionales de módulo para configuracioenes como IRQ la dirección de dirección IO. Si usted tiene una tarjeta de este tipo, introduzca los parámetros adicionales aquí. Por ejemplo: 'io=0x280 irq=9'. Serán utilizados durante la detección de la tarjeta.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"Introduzca la contraseña del usuario %s'admin'. Este es el usuario que accederá a la página de administración %sweb",
-/* TR_ENTER_DOMAINNAME */
-"Introduzca el nombre de dominio",
-/* TR_ENTER_HOSTNAME */
-"Introduzca el nombre host de la máquina",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"Introduzca la dirección IP",
-/* TR_ENTER_NETWORK_DRIVER */
-"Fallo la detección automática de la tarjeta de red. Introduzca el driver y los parámetros opcionales para esta tarjeta de red.",
-/* TR_ENTER_ROOT_PASSWORD */
-"Introduzca la contraseña del usuario 'root'. Acceda como este usuario para obtener acceso a la línea de comandos.",
-/* TR_ENTER_SETUP_PASSWORD */
-"A REMOVER",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"Introduzca la dirección IP para la interfaz %s .",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Introduzca el número telefónico local",
-/* TR_ENTER_URL */
-"Introduzca  la ruta URL de losarchivo ipcop<version>.tgz e images/scsidrv-<version>.img  ADVERTENCIA: ¡DNS no disponible! Ahora debería ser solamente http://X.X.X.X/<directory>",
-/* TR_ERROR */
-"Error",
-/* TR_ERROR_PROBING_CDROM */
-"No se encontró unidad de CD/DVDROM",
-/* TR_ERROR_WRITING_CONFIG */
-"Error escribiendo la información de configuración",
-/* TR_EURO_EDSS1 */
-"Euro (EDSS1)",
-/* TR_EXTRACTING_MODULES */
-"Extrayendo modulos...",
-/* TR_FAILED_TO_FIND */
-"Fallo al encontrar el archivo URL",
-/* TR_FOUND_NIC */
-"%s ha detectado la siguiente tarjeta de red en su máquina %s",
-/* TR_GERMAN_1TR6 */
-"German 1TR6",
-/* TR_HELPLINE */
-"              <Tab>/<Alt-Tab> entre elementos   |  <Espacio> selecciona",
-/* TR_HOSTNAME */
-"Nombre de host",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Nombre de host no puede estar vacío",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Nombre de host no puede contener espacios.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"El nombre de host solo puede contener letra, números y guiones",
-/* TR_INITIALISING_ISDN */
-"Inicializando ISDN...",
-/* TR_INSERT_CDROM */
-"Por favor inserte el CD %s en la unidad de CD/DVD",
-/* TR_INSERT_FLOPPY */
-"Por favor inserte el diskette de drivers %s  en la unidad floppy",
-/* TR_INSTALLATION_CANCELED */
-"Instalación cancelada",
-/* TR_INSTALLING_FILES */
-"Instalando archivos...",
-/* TR_INSTALLING_GRUB */
-"Instalando GRUB...",
-/* TR_INSTALLING_LANG_CACHE */
-"Instalando archivos de idioma...",
-/* TR_INTERFACE */
-"Interfaz - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"La interfaz falló en arrancar",
-/* TR_INVALID_FIELDS */
-"Los siguientes campos son inválidos:\n\n",
-/* TR_INVALID_IO */
-"Los detalles de puerto IO insertados son inválidos.",
-/* TR_INVALID_IRQ */
-"Los detalles de IRQ insertados son inválidos.",
-/* TR_IP_ADDRESS_CR */
-"Dirección IP\n",
-/* TR_IP_ADDRESS_PROMPT */
-"Dirección IP:",
-/* TR_ISDN_CARD */
-"Tarjeta ISDN",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"La tarjeta ISDN no fue detectada. Tal vez debería específicar módulos de parámetro adicionales si la tarjeta es tipo ISA o tiene requerimentos especiales.",
-/* TR_ISDN_CARD_SELECTION */
-"Selección de tarjeta ISDN",
-/* TR_ISDN_CONFIGURATION */
-"Configuración ISDN",
-/* TR_ISDN_CONFIGURATION_MENU */
-"Menú de configuración ISDN",
-/* TR_ISDN_NOT_SETUP */
-"ISDN no está configurado. Algunos elementos no han sido seleccionados.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"ISDN no ha sido configurado aún. Seleccione el elemento que desea configurar",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"Selección de protocolo ISDN",
-/* TR_ISDN_STATUS */
-"ISDN actual es %s.\n\n Protocolo: %s\n Tarjeta: %s\n Número de teléfono lcoal: %s\n\nSeleccione el elemento que desea reconfigurar, o elija usar la configuración actual.",
-/* TR_KEYBOARD_MAPPING */
-"Mapeo de teclado",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Seleccione de la lista el tipo de teclado que está utilizando.",
-/* TR_LEASED_LINE */
-"Concesión de línea",
-/* TR_LOADING_MODULE */
-"Cargando módulo...",
-/* TR_LOADING_PCMCIA */
-"Cargando módulos PCMCIA...",
-/* TR_LOOKING_FOR_NIC */
-"Buscando: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Generando el sistema de arranque...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Generando el sistema de log...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Generando el sistema de archivos root...",
-/* TR_MAKING_SWAPSPACE */
-"Generando el espacio swap....",
-/* TR_MANUAL */
-"* MANUAL *",
-/* TR_MAX_LEASE */
-"Concesión MAX (mins):",
-/* TR_MAX_LEASE_CR */
-"Tiempo MAX de concesión\n",
-/* TR_MISSING_BLUE_IP */
-"Falta información IP en la interfaz BLUE",
-/* TR_MISSING_ORANGE_IP */
-"Falta información IP en la interfaz ORANGE",
-/* TR_MISSING_RED_IP */
-"Falta información IP en la interfaz RED",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"El nombre de módulo no puede estar vacío.",
-/* TR_MODULE_PARAMETERS */
-"Introduzca el nombre del módulo y los parámetros que requiera para sus drivers.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Montando sistema de archivos de arranque...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Montando sistema archvos log...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Montando sistema de archivos root....",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Montando partición swap...",
-/* TR_MSN_CONFIGURATION */
-"Número telefónico local (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Máscara de red:",
-/* TR_NETWORKING */
-"Redes",
-/* TR_NETWORK_ADDRESS_CR */
-"Dirección de red\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Dirección de red:",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Menú de configuración de red",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Tipo de configuración de red",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"Seleccione la configuración de red para %s. Los siguientes tipos de configuración muestran aquellas interfaces que tengan asignada una tarjeta ethernet. Si ud. cambia esta configuración, será necesario reiniciar el servicio de red, y ud. deberá volver a asignar las asignaciones de tarjetas de red.",
-/* TR_NETWORK_MASK_CR */
-"Máscara de red\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Configuración de red falló.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"No hay suficientes tarjetas de red para asignar.",
-/* TR_NO_BLUE_INTERFACE */
-"No se asignó interfaz BLUE.",
-/* TR_NO_CDROM */
-"No se encontró  CD/DVD.",
-/* TR_NO_GREEN_INTERFACE */
-"No se asignó interfaz GREEN.",
-/* TR_NO_HARDDISK */
-"No se encontró unidad de disco duro.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"No se encontró ningun archivo tarball de ipcop en el servidor web",
-/* TR_NO_ORANGE_INTERFACE */
-"No se asignó Interfaz ORANGE.",
-/* TR_NO_RED_INTERFACE */
-"No se asignó interfaz ROJA.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"No se encontró imagen SCSI en el servidor web.",
-/* TR_NO_UNALLOCATED_CARDS */
-"No quedan tarjetas sin asignar. Se necesitan mas. Se puede proceder a autodetección y búsqueda de mas tarjetas o elegir un driver de la lista.",
-/* TR_OK */
-"Ok",
-/* TR_PARTITIONING_DISK */
-"Particionando Disco...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Las contraseñas no concuerdan.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"La contraseña no puede ir en blanco.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"La contraseña no puede llevar espacios.",
-/* TR_PASSWORD_PROMPT */
-"Contraseña:",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Número telefónico no puede ir en blanco.",
-/* TR_PREPARE_HARDDISK */
-"El programa de instalación va a preparar el disco duro en %s. Primero el disco será particionado y después se les colocará un sistema de archivos a las particiones.",
-/* TR_PRESS_OK_TO_REBOOT */
-"Presione Ok para reiniciar el sistema.",
-/* TR_PRIMARY_DNS */
-"DNS Primario:",
-/* TR_PRIMARY_DNS_CR */
-"DNS Primario\n",
-/* TR_PROBE */
-"Detección",
-/* TR_PROBE_FAILED */
-"Falló la auto detección",
-/* TR_PROBING_HARDWARE */
-"Detectando Hardware...",
-/* TR_PROBING_FOR_NICS */
-"Detectando NICs....",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"Problema estableciendo la contraseña del usuario %s 'admin'",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"Problema estableciendo la contraseña del usuario 'root'",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"A REMOVER",
-/* TR_PROTOCOL_COUNTRY */
-"Protocolo/País",
-/* TR_PULLING_NETWORK_UP */
-"Encendiendo la red...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Apagando la red....",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Apagando red no local...",
-/* TR_QUIT */
-"Salir",
-/* TR_RED_IN_USE */
-"ISDN (u otra conexión externa) se encuentra en uso. No puede configurar ISDN mientras la interfaz RED está activa.",
-/* TR_RESTART_REQUIRED */
-"\n\nCuando la configuración se complete, Un reinicio de red será requerido",
-/* TR_RESTORE */
-"Restaurar",
-/* TR_RESTORE_CONFIGURATION */
-"Si cuenta con un floppy con la configuración del %s sistema en el, insertelo en la unidad lectora y presione el botón restaurar.",
-/* TR_ROOT_PASSWORD */
-"Contraseña 'root'",
-/* TR_SECONDARY_DNS */
-"DNS Secundario:",
-/* TR_SECONDARY_DNS_CR */
-"DNS Secundario\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"DNS Secundario especificado sinun servidor DNS primario",
-/* TR_SECTION_MENU */
-"Sección de Menú",
-/* TR_SELECT */
-"Selección",
-/* TR_SELECT_CDROM_TYPE */
-"Seleccione tipo de CDROM",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"No se detectó unidad de CD/DVD en esta máquina. Por favor seleccione cual de los siguientes drivers desea usar para que %s pueda acceder a la unidad de CD/DVD",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Seleccione medio de instalación",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s puede ser instalado desde múltiples fuentes. La mas sencilla es usar la unidad de CD/DVD. Si la máquina carece de una, puede instalarlo desde otra máquina en la red local que tenga los archivos de instalación disponibles via HTTP o FTP.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Seleccione drivers de red",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Seleccione el driver de red para la tarjeta instalada en esta máquina. Si usted elige MANUAL, se le dará una oportunidad de introducir los parámetros y nombres de módulo para los drivers que requieran configuracioens especiales como las tarjetas ISA",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Seleccione la  interfaz que desea reconfigurar",
-/* TR_SELECT_THE_ITEM */
-"Seleccione el elemento que desea configurar",
-/* TR_SETTING_ADMIN_PASSWORD */
-"Estableciendo la contraseña del usuario %s 'admin'...",
-/* TR_SETTING_ROOT_PASSWORD */
-"Estableciendo la contraseña del usuario 'root'...",
-/* TR_SETTING_SETUP_PASSWORD */
-"A REMOVER",
-/* TR_SETUP_FINISHED */
-"La configuración se ha completado. Presione Ok.",
-/* TR_SETUP_NOT_COMPLETE */
-"La configuración inicial no se completó totalmente. Asegúrese de configurar todo correctamente ejecutando setup de nuevo desde la línea de comandos.",
-/* TR_SETUP_PASSWORD */
-"A REMOVER",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Configurar parámetros de módulo adicionales",
-/* TR_SINGLE_GREEN */
-"Su configuración está dispuesta para una interface GREEN única",
-/* TR_SKIP */
-"Omitir",
-/* TR_START_ADDRESS */
-"Dirección de inicio:",
-/* TR_START_ADDRESS_CR */
-"Dirección de inicio\n",
-/* TR_STATIC */
-"Estático",
-/* TR_SUGGEST_IO */
-"(sugerir %x)",
-/* TR_SUGGEST_IRQ */
-"(sugerir %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"El módulo de este driver ya ha sido cargado.",
-/* TR_TIMEZONE */
-"Zona de tiempo",
-/* TR_TIMEZONE_LONG */
-"Seleccione su zona de tiempo de la siguiente lista.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"Imposible expulsar el CD/DVD",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Imposible extraer módulos.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Imposible encontrar drivers adicionales",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Imposible encontrar tarjeta ISDN en esta máquina. Podría necesitar especificar parámetros de módulo adicionales si la tarjeta es tipo ISA o tiene requerimientos especiales",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"Imposible inicializar ISDN",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Imposible instalar archivos.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Imposible instalar archivos de Idioma.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"Imposible instalar GRUB.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Imposible cargar driver de módulo.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Imposibe crear sistema de archivos de arranque.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Imposible crear sistema de archivos log.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Imposible crear sistema de archivos root.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Imposible crear espacio swap",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Imposible crear enlace simbólico /dev/harddisk.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Imposible crear enlace simbólico /dev/harddisk1.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Imposible crear enlace simbólico /dev/harddisk2.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Imposible crear enlace simbólico /dev/harddisk3.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Imposible crear enlace simbólico /dev/harddisk4.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Imposible crear enlace simbólico a /dev/root",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Imposible montar boot filesystem.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Imposible montar log filesystem.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Imposible montar proc filesystem.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Imposible montar root filesystem.",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Imposible montar the swap partition.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Imposible abrir main hosts file.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Imposible abrir settings file",
-/* TR_UNABLE_TO_PARTITION */
-"Imposible particionar el disco.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Imposible remover archivos de descarga temporales.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Imposible asignar el nombre de host.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"Imposible desmontar la unidad CDROM/Floppydisk.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Imposible desmontar disco duro.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Imposible escribir /etc/fstab",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Imposible escribir /etc/hostname",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Imposible escribir /etc/hosts.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Imposible escribir /etc/hosts.allow.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Imposible escribir /etc/hosts.deny.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Imposible escribir %s/ethernet/settings.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Imposible escribir %s/main/hostname.conf",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Imposible escribir %s/main/settings.",
-/* TR_UNCLAIMED_DRIVER */
-"There is an unclaimed ethernet card of type:\n%s\n\nYou can assign this to:",
-/* TR_UNKNOWN */
-"DESCONOCIDO",
-/* TR_UNSET */
-"NO ASIGNADO",
-/* TR_USB_KEY_VFAT_ERR */
-"Esta unidad USB no es válida (no se encontró partición vfat).",
-/* TR_US_NI1 */
-"US NI1",
-/* TR_WARNING */
-"ADVERTENCIA",
-/* TR_WARNING_LONG */
-"Si usted cambia esta dirección IP mientras se encuentra conectado de manera remota, su conexión a esta máquina %s será terminada, i tendrá que reconectarse con la nueva dirección IP. Esta es una operación riesgosa y solamente debería ser intentada si usted tiene acceso físico a la máquina en caso de que algo salga mal.",
-/* TR_WELCOME */
-"Bienvenido al programa de instalación de %s. Si selecciona cancelar en cualquiera de las pantallas siguientes su computadora será reiniciada.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Su sistema está configurado a interfaz GREEN única, la cual ya ha sido asignada.",
-/* TR_YES */
-"Si",
-/* TR_NO */
-"No",
-/* TR_AS */
-"as",
-/* TR_IGNORE */
-"Ignorar",
-/* TR_PPP_DIALUP */
-"PPP DIALUP (PPPoE, modem, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"Iniciando Servidor DHCP ...",
-/* TR_DHCP_STOPSERVER */
-"Deteniendo Servidor DHCP ...",
-/* TR_LICENSE_ACCEPT */
-"I accept this license.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"License not accepted. Exit!",
-/* TR_EXT2FS_DESCR */
-"Ext2 - Filesystem without journal (suggested for flashdrives)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - Filesystem with journal",
-/* TR_EXT4FS_DESCR */
-"Ext4 - Filesystem with journal",
-/* TR_REISERFS_DESCR */
-"ReiserFS - Filesystem with journal",
-/* TR_NO_LOCAL_SOURCE */
-"No local source media found. Starting download.",
-/* TR_DOWNLOADING_ISO */
-"Downloading Installation-Image ...",
-/* TR_DOWNLOAD_ERROR */
-"Error while downloading!",
-/* TR_DHCP_FORCE_MTU */
-"Force DHCP mtu:",
-/* TR_IDENTIFY */
-"Identify",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Selected port should blink now ...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"Function is not supported by this port.",
-};
diff --git a/langs/fr/install/lang_fr.c b/langs/fr/install/lang_fr.c
deleted file mode 100644 (file)
index 188e0fd..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- * French (fr) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPCop is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPCop 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPCop; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- * 
- * (c) IPFire Team  <info@ipfire.org>
- *
- */
-#include "libsmooth.h"
-
-char *fr_tr[] = {
-
-/* TR_ISDN */
-"RNIS",
-/* TR_ERROR_PROBING_ISDN */
-"Impossible de scanner les périphériques RNIS.",
-/* TR_PROBING_ISDN */
-"Recherche et configuration des périphériques RNIS.",
-/* TR_MISSING_GREEN_IP */
-"Adresse IP de l'interface verte manquante !",
-/* TR_CHOOSE_FILESYSTEM */
-"Choisissez SVP votre système de fichiers :",
-/* TR_NOT_ENOUGH_INTERFACES */
-"Il n'y a pas assez de cartes réseau pour ce choix.\n\nRequise : %d - Disponible : %d\n",
-/* TR_INTERFACE_CHANGE */
-"Choisissez SVP l'interface que vous souhaitez modifier.\n\n",
-/* TR_NETCARD_COLOR */
-"Cartes assignées",
-/* TR_REMOVE */
-"Enlever",
-/* TR_MISSING_DNS */
-"DNS manquants.\n",
-/* TR_MISSING_DEFAULT */
-"Passerelle par défaut manquante.\n",
-/* TR_JOURNAL_EXT3 */
-"Création du journal pour Ext3...",
-/* TR_CHOOSE_NETCARD */
-"Choisissez SVP une carte réseau pour l'interface suivante - %s.",
-/* TR_NETCARDMENU2 */
-"Menu réseau étendu",
-/* TR_ERROR_INTERFACES */
-"Il n'y a aucune interface de libre sur votre système.",
-/* TR_REMOVE_CARD */
-"L'attribution de la carte réseau doit-elle être supprimée ? - %s",
-/* TR_JOURNAL_ERROR */
-"Impossible de céer le journal, utilisation de ext2 en remplacement.",
-/* TR_FILESYSTEM */
-"Choix du système de fichier",
-/* TR_ADDRESS_SETTINGS */
-"Paramètres d'adresse",
-/* TR_ADMIN_PASSWORD */
-"Mot de passe 'admin'",
-/* TR_AGAIN_PROMPT */
-"Encore:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"Attribution de toutes les cartes avec succès.",
-/* TR_AUTODETECT */
-"* AUTO-DETECTION *",
-/* TR_BUILDING_INITRD */
-"Génération du ramdisk...",
-/* TR_CANCEL */
-"Annuler",
-/* TR_CARD_ASSIGNMENT */
-"Attribution de la carte",
-/* TR_CHECKING */
-"Vérification de l'URL...",
-/* TR_CHECKING_FOR */
-"Vérification pour : %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Choisissez la carte RNIS sur cet ordinateur.",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"Choisissez le procole RNIS requis.",
-/* TR_CONFIGURE_DHCP */
-"Configurez le serveur DHCP en saisissant les paramètres.",
-/* TR_CONFIGURE_NETWORKING */
-"Configuration du réseau",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"Vous devriez maintenant configurer le réseau en commençant par choisir le pilote approprié pour l'interface verte. Vous pouvez essayer la détection automatique ou choisir vous-même le bon pilote. Notez que si vous avez plus d'une carte réseau installée, vous pourrez configurer les autres ultérieurement. Notez également que si vous avez plus d'une carte qui a le même type que la VERTE et que chacune requiert des paramètres de module spéciaux, vous devriez saisir les paramètres pour toutes les cartes de ce type maintenant de façon à ce que toutes cartes deviennent actives quand vous configurez l'interface verte.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Configurer les pilotes réseaux, et à quelle interface chaque carte est assignée.  La configuration actuelle est comme suit :\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Configurez le CDROM en choisissant l'adresse IO et/ou IRQ appropriées.",
-/* TR_CONGRATULATIONS */
-"Félicitation!",
-/* TR_CONGRATULATIONS_LONG */
-"%s a été installé avec succès. Merci de retirer les CDROMs de l'ordinateur. L'installation va maintenant commencer la configuration pendant laquelle vous pourrez configurer RNIS, les cartes réseaux et les mots de passe du système. Après la fin de l'installation, vous pourrez vous rendre avec votre navigateur web à l'adresse https://%s:444 (ou quelque soit le nom %s que vous avez donné), afin de configurer le réseau commuté (si nécessaire) et l'accès distant.",
-/* TR_CONTINUE_NO_SWAP */
-"Votre disque dur est très petit, mais vous pouvez continuer avec une petite partition d'échange. (Utiliser avec précaution).",
-/* TR_CURRENT_CONFIG */
-"Configuration actuelle : %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Passerelle par défaut :",
-/* TR_DEFAULT_GATEWAY_CR */
-"Passerelle par défaut\n",
-/* TR_DEFAULT_LEASE */
-"Bail par défaut (mins):",
-/* TR_DEFAULT_LEASE_CR */
-"Bail par défaut\n",
-/* TR_DETECTED */
-"Détecté: %s",
-/* TR_DHCP_HOSTNAME */
-"Hôte DHCP :",
-/* TR_DHCP_HOSTNAME_CR */
-"Hôte DHCP\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"Configuration du serveur DHCP",
-/* TR_DISABLED */
-"Désactivé",
-/* TR_DISABLE_ISDN */
-"Désactiver RNIS",
-/* TR_DISK_TOO_SMALL */
-"Votre disque dur est trop petit.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"Paramètres DNS et de la passerelle",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"Saisissez les DNS et les informations de la passerelle.  Ces paramètres ne sont utilisés qu'avec une IP statique (et DHCP si les DNS sont saisis) sur l'interface rouge (RED).",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Votre configuration n'utilise pas d'adaptateur ethernet pour l'interface rouge.  DNS et les informations de la passerelle pour les utilisateur de réseau commuté est configuré automatiquement au moment de la connexion.",
-/* TR_DOMAINNAME */
-"Nom de domaine",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Le nom de domaine ne peut être vide.",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"Le nom de domaine ne peut pas contenir d'espaces.",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Le nom de domaine ne peut contenir que des lettres, chiffres, -, et des points.",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Suffixe du nom de domaine :",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Suffixe du nom de domaine\n",
-/* TR_DONE */
-"Terminé",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\nVoulez-vous changer ces paramètres ?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Attribution des pilotes et des cartes",
-/* TR_ENABLED */
-"Activé",
-/* TR_ENABLE_ISDN */
-"Activer RNIS",
-/* TR_END_ADDRESS */
-"Adresse de fin :",
-/* TR_END_ADDRESS_CR */
-"Adresse de fin\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Certaines cartes RNIS (particulièrement les ISA) peut nécessiter des paramètres supplémentaires pour configurer les adresses IRQ et IO. Si vous avez une telle carte, saisissez ces paramètres ici. Par exemple : \"io=0x280 irq=9\". Ils seront utilisés pendant la détection des cartes.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"Saisissez le mot de passe pour l'administrateur 'admin' d'%s.  C'est l'utilisateur à utiliser pour l'interface d'administration web %s.",
-/* TR_ENTER_DOMAINNAME */
-"Entrez un nom de domaine",
-/* TR_ENTER_HOSTNAME */
-"Entrez le nom d'hôte de la machine.",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"Entez l'adresse IP",
-/* TR_ENTER_NETWORK_DRIVER */
-"La détection automatique de la carte réseau a échoué. Entrez les pilotes et paramètres optionnels pour la carte réseau.",
-/* TR_ENTER_ROOT_PASSWORD */
-"Entrez le mot de passe 'root'. Il est utilisé pour l'accès en ligne de commande.",
-/* TR_ENTER_SETUP_PASSWORD */
-"A ENLEVER",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"Entrez les informations IP pour l'interface %s.",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Entrez le numéro de téléphone local (MSN/EAZ).",
-/* TR_ENTER_URL */
-"Entrez l'URL vers ipcop-<version>.tgz et les fichiers images/scsidrv-<version>.img. ATTENTION : DNS non disponibles ! Ca devrait être quelque chose comme http://X.X.X.X/<dossier>",
-/* TR_ERROR */
-"Erreur",
-/* TR_ERROR_PROBING_CDROM */
-"Aucun lecteur CDROM trouvé.",
-/* TR_ERROR_WRITING_CONFIG */
-"Erreur lors de l'écriture des informations de configuration.",
-/* TR_EURO_EDSS1 */
-"Euro (EDSS1)",
-/* TR_EXTRACTING_MODULES */
-"Extraction des modules...",
-/* TR_FAILED_TO_FIND */
-"Impossible de  trouver le fichier URL.",
-/* TR_FOUND_NIC */
-"%s a détecté la carte réseau suivante sur votre machine : %s",
-/* TR_GERMAN_1TR6 */
-"German 1TR6",
-/* TR_HELPLINE */
-"              <Tab>/<Alt-Tab> changer d'élément   |  <Espace> sélectionner",
-/* TR_HOSTNAME */
-"Nom d'hôte",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Le nom d'hôte ne peut être vide.",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Le nom d'hôte ne peut contenir d'espaces.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"Le nom d'hôte ne peut contenir que des lettres, chiffres et traits d'union.",
-/* TR_INITIALISING_ISDN */
-"Initialisation RNIS...",
-/* TR_INSERT_CDROM */
-"Insérez le CD %s dans le lecteur de CDROM.",
-/* TR_INSERT_FLOPPY */
-"Insérez la disquette du driver %s dans le lecteur de disquette.",
-/* TR_INSTALLATION_CANCELED */
-"Installation annulée.",
-/* TR_INSTALLING_FILES */
-"Installation des fichiers...",
-/* TR_INSTALLING_GRUB */
-"Installation de GRUB...",
-/* TR_INSTALLING_LANG_CACHE */
-"Installation des fichiers de langues...",
-/* TR_INTERFACE */
-"Interface - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"L'interface n'a pas pu être activée.",
-/* TR_INVALID_FIELDS */
-"Les champs suivants sont invalides :\n\n",
-/* TR_INVALID_IO */
-"Les détails du port d'IO sont invalides. ",
-/* TR_INVALID_IRQ */
-"Les détails IRQ sont invalides.",
-/* TR_IP_ADDRESS_CR */
-"Adresse IP\n",
-/* TR_IP_ADDRESS_PROMPT */
-"Adresse IP :",
-/* TR_ISDN_CARD */
-"Carte RNIS",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"Carte RNIS non détectée. Vous devez peut-être spécifier des paramètres additionnels si la carte est de type ISA ou si elle a des spécifications particulières.",
-/* TR_ISDN_CARD_SELECTION */
-"Sélection de la carte RNIS",
-/* TR_ISDN_CONFIGURATION */
-"Configuration RNIS",
-/* TR_ISDN_CONFIGURATION_MENU */
-"Menu de configuration RNIS",
-/* TR_ISDN_NOT_SETUP */
-"RNIS non installé. Certains paramètres n'ont pas été sélectionnés.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"RNIS n'a pas encore été configuré. Sélectionnez le paramètre que vous souhaitez configurer.",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"Sélection du protocole RNIS",
-/* TR_ISDN_STATUS */
-"RNIS est actuellement %s.\n\n   Protocole : %s\n   Carte : %s\n   Numéro de téléphone local : %s\n\nSélectionnez le paramètre que vous voulez reconfigurer, ou utilisez les paramètres actuels.",
-/* TR_KEYBOARD_MAPPING */
-"Organisation du clavier",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Choisissez le type de clavier que vous utilisez dans la liste ci-dessous.",
-/* TR_LEASED_LINE */
-"Leased line (ligne dédiée)",
-/* TR_LOADING_MODULE */
-"Chargement du module...",
-/* TR_LOADING_PCMCIA */
-"Chargement du module PCMCIA...",
-/* TR_LOOKING_FOR_NIC */
-"Recherche de: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Génération du système de fichier de démarrage...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Génération du système de fichier de log...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Génération du système de fichier de root...",
-/* TR_MAKING_SWAPSPACE */
-"Génération de la partition swap...",
-/* TR_MANUAL */
-"* MANUEL *",
-/* TR_MAX_LEASE */
-"Bail Max (mins):",
-/* TR_MAX_LEASE_CR */
-"Bail Max\n",
-/* TR_MISSING_BLUE_IP */
-"Paramètres IP manquants sur l'interface BLEUE.",
-/* TR_MISSING_ORANGE_IP */
-"Paramètres IP manquants sur l'interface ORANGE.",
-/* TR_MISSING_RED_IP */
-"Paramètres IP manquants sur l'interface ROUGE.",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"Le nom du module ne peut être vide.",
-/* TR_MODULE_PARAMETERS */
-"Entrer les paramètres et le nom du module pour le pilote requis.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Montage du système de fichier de boot...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Montage du système de fichier de log...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Montage du système de fichier de root...",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Montage de la partition swap...",
-/* TR_MSN_CONFIGURATION */
-"Numéro de téléphone local (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Masque réseau :",
-/* TR_NETWORKING */
-"Réseau",
-/* TR_NETWORK_ADDRESS_CR */
-"Adresse réseau\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Adresse réseau :",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Menu de configuration du réseau",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Type de configuration réseau",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"Sélectionnez la configuration réseau pour %s.  Les types de configuration suivants listent les interfaces ethernet. Si vous changez ce paramètre, un redémarrage du réseau est requis, et vous devrez reconfigurer les attributions des pilotes.",
-/* TR_NETWORK_MASK_CR */
-"Masque réseau\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Installation du réseau échouée.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"Trop peu de cartes ont été attribuée.",
-/* TR_NO_BLUE_INTERFACE */
-"Interface BLEUE non attribuée.",
-/* TR_NO_CDROM */
-"Aucun CD-ROM trouvé.",
-/* TR_NO_GREEN_INTERFACE */
-"Interface VERTE non attribuée.",
-/* TR_NO_HARDDISK */
-"Aucun disque dur trouvé.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"Aucun tarball ipcop trouvé sur le serveur Web.",
-/* TR_NO_ORANGE_INTERFACE */
-"Interface ORANGE non attribuée.",
-/* TR_NO_RED_INTERFACE */
-"Interface ROUGE non attribuée.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"Aucune image SCSI trouvée sur le serveur Web.",
-/* TR_NO_UNALLOCATED_CARDS */
-"Aucune carte non attribuée restante, il en faut plus. Vous pouvez auto-détecter et rechercher plus de cartes ou choisissez un pilote dans la liste.",
-/* TR_OK */
-"Ok",
-/* TR_PARTITIONING_DISK */
-"Partitionnement du disque...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Les mots de passe ne correspondent pas.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"Le mot de passe ne peut être vide.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"Le mot de  passe ne peut contenir d'espaces.",
-/* TR_PASSWORD_PROMPT */
-"Mot de passe :",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Le numéro de téléphone ne peut être vide.",
-/* TR_PREPARE_HARDDISK */
-"Le programme d'installation va maintenant préparer le disque %s. Il sera d'abord partitionné, puis les systèmes de fichiers seront installés.",
-/* TR_PRESS_OK_TO_REBOOT */
-"Appuyer sur Ok pour redémarrer.",
-/* TR_PRIMARY_DNS */
-"DNS primaire :",
-/* TR_PRIMARY_DNS_CR */
-"DNS primaire\n",
-/* TR_PROBE */
-"Auto-détection",
-/* TR_PROBE_FAILED */
-"Auto-détection échouée.",
-/* TR_PROBING_HARDWARE */
-"Détection du matériel...",
-/* TR_PROBING_FOR_NICS */
-"Détection des cartes réseaux...",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"Problème lors de la configuration du mot de passe 'admin' %s.",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"Problème lors de la configuration du mot de passe 'root'.",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"A ENLEVER",
-/* TR_PROTOCOL_COUNTRY */
-"Protocole/Pays",
-/* TR_PULLING_NETWORK_UP */
-"Démarrage du réseau...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Arrêt du réseau...",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Arrêt du réseau distant...",
-/* TR_QUIT */
-"Quitter",
-/* TR_RED_IN_USE */
-"RNIS (ou une autre connexion externe) est actuellement utilisée.  Vous ne pouvez pas configurer RNIS pendant que l'interface ROUGE est utilisée.",
-/* TR_RESTART_REQUIRED */
-"\n\nLorsque la configuration sera terminée, un redémarrage du réseau sera requis.",
-/* TR_RESTORE */
-"Restaurer",
-/* TR_RESTORE_CONFIGURATION */
-"Si vous avez une disquette avec une configuration système %s, insérez la disquette dans le lecteur et appuyer sur restaurer.",
-/* TR_ROOT_PASSWORD */
-"Mot de passe 'root'",
-/* TR_SECONDARY_DNS */
-"DNS secondaire :",
-/* TR_SECONDARY_DNS_CR */
-"DNS secondaire\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"DNS secondaire spécifié sans un DNS primaire",
-/* TR_SECTION_MENU */
-"Menu de sélection",
-/* TR_SELECT */
-"Sélectionner",
-/* TR_SELECT_CDROM_TYPE */
-"Sélectionner le type de CDROM",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"Aucun CD-ROM détecté sur la machine.  Sélectionnez lequel des pilotes suivants vous voulez utiliser afin que %s accède au CD-ROM.",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Sélectionner le média d'installation",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s peut être installé depuis de multiples sources.  La manière la plus simple est d'utiliser une machine avec un CD-ROM. S'il n'y a aucun lecteur, vous pouvez installer via une autre machine du réseau qui possède les fichiers d'installation disponibles par FTP ou HTTP.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Sélectionner un pilote réseau",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Sélectionner le pilote réseau pour la carte installée sur la machine. Si vous sélectionner MANUEL, vous pourrez saisir le nom du pilote ainsi que les paramètres pour les pilotes qui sont spécifiques comme les cartes ISA.",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Sélectionnez l'interface que vous voulez reconfigurer.",
-/* TR_SELECT_THE_ITEM */
-"Sélectionner l'élément que vous voulez configurer.",
-/* TR_SETTING_ADMIN_PASSWORD */
-"Paramétrage le mot de passe 'admin' de %s...",
-/* TR_SETTING_ROOT_PASSWORD */
-"Paramétrage du mot de passe 'root'....",
-/* TR_SETTING_SETUP_PASSWORD */
-"A ENLEVER",
-/* TR_SETUP_FINISHED */
-"Installation terminée.",
-/* TR_SETUP_NOT_COMPLETE */
-"L'installation initiale n'est pas complètement finie.  Vous devez vous assurer que l'installation s'est finie correctement en relançant l'installation depuis le shell.",
-/* TR_SETUP_PASSWORD */
-"A ENLEVER",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Choisissez les paramètres additionnels du module",
-/* TR_SINGLE_GREEN */
-"Votre configuration est définie pour une unique interface VERTE.",
-/* TR_SKIP */
-"Passer",
-/* TR_START_ADDRESS */
-"Adresse de début :",
-/* TR_START_ADDRESS_CR */
-"Adresse de début\n",
-/* TR_STATIC */
-"Statique",
-/* TR_SUGGEST_IO */
-"(suggère %x)",
-/* TR_SUGGEST_IRQ */
-"(suggère %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"Ce pilote est déjà chargé.",
-/* TR_TIMEZONE */
-"Fuseau horaire",
-/* TR_TIMEZONE_LONG */
-"Choisissez votre fuseau horaire dans la liste ci-dessous.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"Impossible d'éjecter le CD-ROM.",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Impossible d'extraire les modules.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Impossible de trouver des pilotes supplémentaires.",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Impossible de trouver une carte RNIS sur cet ordinateur. Vous devrez peut-être spécifier des paramètres additionnels si la carte est de type ISA ou si elle a des spécificités.",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"Impossible d'initialiser RNIS.",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Impossible d'installer les fichiers.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Impossible d'installer les fichiers de langues.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"Impossible d'installer GRUB.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Impossible de charger le pilote.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Impossible de générer le système de fichiers boot.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Impossible de générer le système de fichiers log.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Impossible de générer le système de fichiers root.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Impossible de générer la partition swap.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Impossible de créer le symlink /dev/harddisk.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Impossible de créer le simlink /dev/harddisk1.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Impossible de créer le symlink /dev/harddisk2.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Impossible de créer le symlink /dev/harddisk3.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Impossible de créer le symlink /dev/harddisk4.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Impossible de créer le symlink /dev/root.",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Impossible de monter le système de fichier boot.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Impossible de monter le système de fichier log.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Impossible de monter le système de fichier proc.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Impossible de monter le système de fichier root.",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Impossible de monter la partition swap.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Impossible d'ouvrir le fichier hosts principal.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Impossible d'ouvrir le fichier settings",
-/* TR_UNABLE_TO_PARTITION */
-"Impossible de partitionner le disque.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Impossible de supprimer les fichiers téléchargés temporaires.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Impossible de définir le nom d'hôte.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"Impossible de démonter le CDROM/disquette.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Impossible de démonter le disque dur.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Impossible d'écrire /etc/fstab",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Impossible d'écrire /etc/hostname",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Impossible d'écrire /etc/hosts.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Impossible d'écrire /etc/hosts.allow.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Impossible d'écrire /etc/hosts.deny.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Impossible d'écrire %s/ethernet/settings.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Impossible d'écrire %s/main/hostname.conf",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Impossible d'écrire %s/main/settings.",
-/* TR_UNCLAIMED_DRIVER */
-"Il y a une carte ethernet non assignée de type :\n%s\n\nVous pouvez l'assigner à :",
-/* TR_UNKNOWN */
-"INCONNU",
-/* TR_UNSET */
-"NON DEFINIE",
-/* TR_USB_KEY_VFAT_ERR */
-"La clé USB est invalide (aucune partition vfat).",
-/* TR_US_NI1 */
-"US NI1",
-/* TR_WARNING */
-"ATTENTION",
-/* TR_WARNING_LONG */
-"Si vous changez cette adresse IP et que vous êtes connecté à distance, la connexion à la machine %s sera interrompue et vous aurez à vous reconnecter avec la nouvelle IP. C'est une opération risquée et ne devrait pas être tentée si vous n'avez pas d'accès physique à la machine dans le cas où quelque chose se passe mal.",
-/* TR_WELCOME */
-"Bienvenue dans le programme d'installation d'%s. Si vous sélectionnez Annuler sur n'importe lequel des écrans suivants, ceci redémarrera l'ordinateur.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Votre configuration est définie pour une interface VERTE unique, qui a déjà un pilote assigné.",
-/* TR_YES */
-"Oui",
-/* TR_NO */
-"Non",
-/* TR_AS */
-"comme",
-/* TR_IGNORE */
-"Ignorer",
-/* TR_PPP_DIALUP */
-"PPP DIALUP (PPPoE, Modem, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"Démarrage du serveur DHCP ...",
-/* TR_DHCP_STOPSERVER */
-"Arrêt du serveur DHCP ...",
-/* TR_LICENSE_ACCEPT */
-"J'accepte les termes de cette licence.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"Je n'accepte pas les termes de cette licence, quitter le programme d'installation.",
-/* TR_EXT2FS_DESCR */
-"Ext2 - Système de fichiers sans journal (suggéré pour les cartes flash)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - Système de fichiers avec journal",
-/* TR_EXT4FS_DESCR */
-"Ext4 - Système de fichiers avec journal",
-/* TR_REISERFS_DESCR */
-"ReiserFS - Système de fichiers avec journal",
-/* TR_NO_LOCAL_SOURCE */
-"Pas de source locale trouvée. Démarrage du téléchargement.",
-/* TR_DOWNLOADING_ISO */
-"Téléchargement du fichier image ISO ...",
-/* TR_DOWNLOAD_ERROR */
-"Erreur pendant le téléchargement!",
-/* TR_DHCP_FORCE_MTU */
-"Force DHCP mtu:",
-/* TR_IDENTIFY */
-"Identify",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Selected port should blink now ...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"Function is not supported by this port.",
-};
diff --git a/langs/nl/install/lang_nl.c b/langs/nl/install/lang_nl.c
deleted file mode 100644 (file)
index cd43fc5..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * Dutch (nl) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPCop is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPCop 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPCop; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- * 
- * (c) IPFire Team  <info@ipfire.org>
- *
- * based on work of SmoothWall and IPCop
- *
- * (c) The SmoothWall Team
- *  
- */
-#include "libsmooth.h"
-
-char *nl_tr[] = {
-
-/* TR_ISDN */
-"ISDN",
-/* TR_ERROR_PROBING_ISDN */
-"Kan ISDN-apparaten niet detecteren.",
-/* TR_PROBING_ISDN */
-"Detecteren en configureren van ISDN-apparaten.",
-/* TR_MISSING_GREEN_IP */
-"Groen IP-adres ontbreekt!",
-/* TR_CHOOSE_FILESYSTEM */
-"Kies uw bestandssysteem:",
-/* TR_NOT_ENOUGH_INTERFACES */
-"Onvoldoende netwerkkaarten voor uw keuze.\n\nNodig: %d - Beschikbaar: %d\n",
-/* TR_INTERFACE_CHANGE */
-"Kies de interface die u wilt wijzigen.\n\n",
-/* TR_NETCARD_COLOR */
-"Toegewezen kaarten",
-/* TR_REMOVE */
-"Verwijder",
-/* TR_MISSING_DNS */
-"DNS ontbreekt.\n",
-/* TR_MISSING_DEFAULT */
-"Standaard gateway ontbreekt.\n",
-/* TR_JOURNAL_EXT3 */
-"Aanmaken journal voor Ext3...",
-/* TR_CHOOSE_NETCARD */
-"Kies een netwerkkaart voor de volgende interface - %s.",
-/* TR_NETCARDMENU2 */
-"Uitgebreide Netwerkmenu",
-/* TR_ERROR_INTERFACES */
-"Er zijn geen vrije interfaces op uw systeem.",
-/* TR_REMOVE_CARD */
-"Moet de toewijzing voor de netwerkkaart worden verwijderd? - %s",
-/* TR_JOURNAL_ERROR */
-"Kon het journaalboek niet aanmaken, valt terug op gebruik van ext2.",
-/* TR_FILESYSTEM */
-"Kies uw bestandssysteem",
-/* TR_ADDRESS_SETTINGS */
-"Adresinstellingen",
-/* TR_ADMIN_PASSWORD */
-"'admin' wachtwoord",
-/* TR_AGAIN_PROMPT */
-"Nogmaals:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"Alle kaarten zijn succesvol toegewezen.",
-/* TR_AUTODETECT */
-"* AUTOMATISCH DETECTEREN *",
-/* TR_BUILDING_INITRD */
-"Aanmaken ramdisk...",
-/* TR_CANCEL */
-"Annuleren",
-/* TR_CARD_ASSIGNMENT */
-"Kaart toewijzing",
-/* TR_CHECKING */
-"Controleert URL...",
-/* TR_CHECKING_FOR */
-"Controleert voor: %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Kies de ISDN-kaart die geïnstalleerd is op deze computer.",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"Kies het ISDN-protocol dat u nodig heeft.",
-/* TR_CONFIGURE_DHCP */
-"Configureer de DHCP server door de instellingen in te voeren.",
-/* TR_CONFIGURE_NETWORKING */
-"Configureer het netwerk",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"U moet nu het netwerk configureren door eerst de juiste driver te laden voor de GROENE interface. U kunt dit doen door ofwel automatisch te zoeken naar een netwerkkaart, of door de juiste driver te kiezen uit een lijst. Als u meer dan een kaart in uw machine heeft, dan kunt u die later in het installatieproces configureren. Mocht u meer dan een kaart van hetzelfde type als GROEN gebruiken en iedere kaart vereist speciale moduleparameters, dan moet u de parameters voor alle kaarten van dit type invoeren zodat alle kaarten actief kunnen worden waneer u de GROENE interface configureert.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Configureer netwerkdrivers en bepaal welke interface iedere kaart krijgt toegewezen.\nDe huidige configuratie is als volgt:\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Configureer de CDROM door het juiste IO-adres en/of IRQ te kiezen.",
-/* TR_CONGRATULATIONS */
-"Gefeliciteerd!",
-/* TR_CONGRATULATIONS_LONG */
-"%s is succesvol geïnstalleerd. Verwijder a.u.b. de CDROM's in uw computer. U kunt nu de netwerkkaarten en ISDN configureren en de systeemwachtwoorden instellen. Nadat de setup is afgerond, kunt u met de webbrowser naar https://%s:444 (of hoe u %s ook genoemd heeft) en het inbelnetwerk configureren (als nodig) en de remote toegang.", 
-/* TR_CONTINUE_NO_SWAP */
-"Uw vaste schijf is erg klein, maar u kunt verder gaan met een zeer kleine swap. (Wees hier voorzichtig mee).",
-/* TR_CURRENT_CONFIG */
-"Huidige configuratie: %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Standaard Gateway:",
-/* TR_DEFAULT_GATEWAY_CR */
-"Standaard Gateway\n",
-/* TR_DEFAULT_LEASE */
-"Standaard lease (min.):",
-/* TR_DEFAULT_LEASE_CR */
-"Standaard leasetijd\n",
-/* TR_DETECTED */
-"Gedetecteerd: %s",
-/* TR_DHCP_HOSTNAME */
-"DHCP Hostnaam:",
-/* TR_DHCP_HOSTNAME_CR */
-"DHCP Hostnaam\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"DHCP serverconfiguratie",
-/* TR_DISABLED */
-"Uitgeschakeld",
-/* TR_DISABLE_ISDN */
-"ISDN uitschakelen",
-/* TR_DISK_TOO_SMALL */
-"Uw vaste schijf is te klein.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"DNS en Gateway instellingen",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"Voer de DNS en gateway informatie in. Deze instellingen worden alleen gebruikt met statische IP-adressen (en DHCP als DNS is ingesteld) op de RODE interface.",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Uw configuratie gebruikt geen ethernetadapter voor z'n RODE interface. DNS en gateway voor inbelgebruikers worden automatisch geconfigureerd tijdens inbellen.",
-/* TR_DOMAINNAME */
-"Domeinnaam",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Domeinnaam mag niet leeg zijn.",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"Domeinnaam mag geen spaties bevatten.",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Domeinnaam mag alleen letters, getallen, koppeltekens en punten bevatten.",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Domeinnaam toevoeging:",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Domeinnaam toevoeging\n",
-/* TR_DONE */
-"Klaar",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\nWilt u deze instellingen wijzigen?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Drivers en kaarttoewijzingen",
-/* TR_ENABLED */
-"Ingeschakeld",
-/* TR_ENABLE_ISDN */
-"Inschakelen ISDN",
-/* TR_END_ADDRESS */
-"Eindadres:",
-/* TR_END_ADDRESS_CR */
-"Eindadres\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Bepaalde ISDN-kaarten (met name de ISA-kaarten) kunnen extra moduleparameters vereisen voor het instellen van IRQ- en IO-adressen. Als u zo'n ISDN-kaart heeft, voer deze parameters dan hier in. Bijvoorbeeld: \"io=0x280 irq=9\". Deze gegevens worden gebruikt tijdens de kaartdetectie.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"Voer het %s 'admin' wachtwoord in. Dit is de gebruikersnaam die gebruikt wordt om in te loggen op de %s webbeheerpagina's.",
-/* TR_ENTER_DOMAINNAME */
-"Voer de domeinnaam in",
-/* TR_ENTER_HOSTNAME */
-"Voer de machinehostnaam in",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"Voer de IP-adres informatie in",
-/* TR_ENTER_NETWORK_DRIVER */
-"Automatisch detecteren van netwerkkaart is mislukt. Voer de drivernaam en optionele parameters in voor de netwerkkaart.",
-/* TR_ENTER_ROOT_PASSWORD */
-"Voer het 'root' wachtwoord in. Log in als deze gebruiker voor commandoregel toegang.",
-/* TR_ENTER_SETUP_PASSWORD */
-"WORDT VERWIJDERD",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"Voer de IP-adres informatie in voor de %s interface.",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Voer lokaal telefoonnummer in (MSN/EAZ).",
-/* TR_ENTER_URL */
-"Voer het URL-pad in naar de ipcop-<versie>.tgz en images/scsidrv-<versie>.img bestanden. WAARSCHUWING: DNS is niet beschikbaar! Dit zou http://X.X.X.X/<directory> moeten zijn",
-/* TR_ERROR */
-"Fout",
-/* TR_ERROR_PROBING_CDROM */
-"Geen CDROM-speler gevonden.",
-/* TR_ERROR_WRITING_CONFIG */
-"Fout bij wegschrijven van configuratie informatie.",
-/* TR_EURO_EDSS1 */
-"Euro (EDSS1)",
-/* TR_EXTRACTING_MODULES */
-"Uitpakken modules...",
-/* TR_FAILED_TO_FIND */
-"URL-bestand niet gevonden.",
-/* TR_FOUND_NIC */
-"%s heeft de volgende NIC in uw machine gedetecteerd: %s",
-/* TR_GERMAN_1TR6 */
-"German 1TR6",
-/* TR_HELPLINE */
-"        <Tab>/<Alt-Tab> schakel tussen elementen   |  <Spatie> selecteer",
-/* TR_HOSTNAME */
-"Hostnaam",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Hostnaam mag niet leeg zijn.",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Hostnaam mag geen spaties bevatten.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"Hostnaam mag alleen letters, getallen en koppeltekens bevatten.",
-/* TR_INITIALISING_ISDN */
-"Initialiseert ISDN...",
-/* TR_INSERT_CDROM */
-"Plaats de %s CD in the CDROM-speler a.u.b.",
-/* TR_INSERT_FLOPPY */
-"Plaats de %s driver-diskette in het station a.u.b.",
-/* TR_INSTALLATION_CANCELED */
-"Installatie afgebroken.",
-/* TR_INSTALLING_FILES */
-"Installeert bestanden...",
-/* TR_INSTALLING_GRUB */
-"Installeert GRUB...",
-/* TR_INSTALLING_LANG_CACHE */
-"Installeert taalbestanden...",
-/* TR_INTERFACE */
-"Interface - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"Interface kwam niet op.",
-/* TR_INVALID_FIELDS */
-"De volgende velden zijn ongeldig:\n\n",
-/* TR_INVALID_IO */
-"De ingevoerde IO-poortgegevens zijn ongeldig. ",
-/* TR_INVALID_IRQ */
-"De ingevoerde IRQ gegevens zijn ongeldig.",
-/* TR_IP_ADDRESS_CR */
-"IP-adres\n",
-/* TR_IP_ADDRESS_PROMPT */
-"IP-adres:",
-/* TR_ISDN_CARD */
-"ISDN-kaart",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"ISDN-kaart niet gedetecteerd. Mogelijk dient u extra moduleparameters op te geven als het een ISA type betreft of heeft het speciale eisen.",
-/* TR_ISDN_CARD_SELECTION */
-"ISDN kaartselectie",
-/* TR_ISDN_CONFIGURATION */
-"ISDN configuratie",
-/* TR_ISDN_CONFIGURATION_MENU */
-"ISDN configuratiemenu",
-/* TR_ISDN_NOT_SETUP */
-"ISDN niet ingesteld. Sommige items zijn niet geselecteerd.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"ISDN is nog niet geconfigureerd. Selecteer het item dat u wilt configureren.",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"ISDN protocolselectie",
-/* TR_ISDN_STATUS */
-"ISDN is momenteel %s.\n\n   Protocol: %s\n   Kaart: %s\n   Lokaal telefoonnummer: %s\n\nSelecteer het item dat u wilt herconfigureren, of kies voor de huidige instellingen.",
-/* TR_KEYBOARD_MAPPING */
-"Toetsenbordindeling",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Kies het type toetsenbord dat u gebruikt uit de lijst hieronder.",
-/* TR_LEASED_LINE */
-"Vaste verbinding",
-/* TR_LOADING_MODULE */
-"Laadt module...",
-/* TR_LOADING_PCMCIA */
-"Laadt PCMCIA modules...",
-/* TR_LOOKING_FOR_NIC */
-"Zoekt naar: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Aanmaken boot bestandssysteem...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Aanmaken log bestandssysteem...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Aanmaken root bestandssysteem...",
-/* TR_MAKING_SWAPSPACE */
-"Aanmaken swap...",
-/* TR_MANUAL */
-"* HANDMATIG *",
-/* TR_MAX_LEASE */
-"Max. lease (min.):",
-/* TR_MAX_LEASE_CR */
-"Max. leasetijd\n",
-/* TR_MISSING_BLUE_IP */
-"Ontbrekende IP-informatie op de BLAUWE interface.",
-/* TR_MISSING_ORANGE_IP */
-"Ontbrekende IP-informatie op de ORANJE interface.",
-/* TR_MISSING_RED_IP */
-"Ontbrekende IP-informatie op de RODE interface.",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"Modulenaam mag niet leeg zijn.",
-/* TR_MODULE_PARAMETERS */
-"Voer de modulenaam en parameters in voor de driver die u nodig hebt.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Koppelen van het boot bestandssysteem...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Koppelen van het log bestandssysteem...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Koppelen van het root bestandssysteem...",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Koppelen van de swap partitie...",
-/* TR_MSN_CONFIGURATION */
-"Lokaal telefoonnummer (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Netwerkmasker:",
-/* TR_NETWORKING */
-"Netwerk",
-/* TR_NETWORK_ADDRESS_CR */
-"Netwerkadres\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Netwerkadres:",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Netwerk configuratiemenu",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Netwerk configuratietype",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"Selecteer de netwerkconfiguratie voor %s. De volgende configuratiesoorten vermelden welke interfaces op ethernet aangesloten zijn. Als u deze instellingen wijzigt, dan is een netwerk herstart nodig en u moet de netwerkdriver toewijzingen opnieuw maken.",
-/* TR_NETWORK_MASK_CR */
-"Netwerkmasker\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Netwerkinstelling mislukt.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"Er zijn onvoldoende kaarten toegewezen.",
-/* TR_NO_BLUE_INTERFACE */
-"Er is geen BLAUWE interface toegewezen.",
-/* TR_NO_CDROM */
-"Geen CD-ROM gevonden.",
-/* TR_NO_GREEN_INTERFACE */
-"Er is geen GROENE interface toegewezen.",
-/* TR_NO_HARDDISK */
-"Geen vaste schijf gevonden.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"Er is geen ipcop tarball gevonden op de webserver.",
-/* TR_NO_ORANGE_INTERFACE */
-"Er is geen ORANJE interface toegewezen.",
-/* TR_NO_RED_INTERFACE */
-"Er is geen RODE interface toegewezen.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"Er is geen SCSI image gevonden op de webserver.",
-/* TR_NO_UNALLOCATED_CARDS */
-"Er zijn geen vrije kaarten over, er zijn er meer vereist. U kunt automatisch detecteren proberen en op zoek gaan naar meer kaarten, of u kiest een driver uit de lijst.",
-/* TR_OK */
-"Ok",
-/* TR_PARTITIONING_DISK */
-"Partitioneert schijf...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Wachtwoorden komen niet overeen.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"Wachtwoord mag niet leeg zijn.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"Wachtwoord mag geen spaties bevatten.",
-/* TR_PASSWORD_PROMPT */
-"Wachtwoord:",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Telefoonnummer mag niet leeg zijn.",
-/* TR_PREPARE_HARDDISK */
-"Het installatieprogramma zal nu de vaste schijf voorbereiden op %s. Eerst wordt de schijf gepartitioneerd, daarna zullen de bestandssystemen erop worden gezet.\n\nALLE DATA OP DE SCHIJF ZAL WORDEN GEWIST. Wilt u hiermee doorgaan?",
-/* TR_PRESS_OK_TO_REBOOT */
-"Druk Ok om te herstarten.",
-/* TR_PRIMARY_DNS */
-"Primaire DNS:",
-/* TR_PRIMARY_DNS_CR */
-"Primaire DNS\n",
-/* TR_PROBE */
-"Opsporen",
-/* TR_PROBE_FAILED */
-"Automatisch detecteren mislukt.",
-/* TR_PROBING_HARDWARE */
-"Opsporen van hardware...",
-/* TR_PROBING_FOR_NICS */
-"Zoeken naar NIC's...",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"Er is een probleem met het instellen van %s 'admin' gebruikerswachtwoord.",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"Er is een probleem met het instellen van %s 'root' gebruikerswachtwoord.",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"WORDT VERWIJDERD",
-/* TR_PROTOCOL_COUNTRY */
-"Protocol/Land",
-/* TR_PULLING_NETWORK_UP */
-"Netwerk opbrengen...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Netwerk stoppen...",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Niet-lokaal netwerk stoppen...",
-/* TR_QUIT */
-"Stoppen",
-/* TR_RED_IN_USE */
-"ISDN (of een andere externe verbinding) is momenteel in gebruik. U kunt ISDN niet configureren zolang de RODE interface actief is.",
-/* TR_RESTART_REQUIRED */
-"\n\nAls de configuratie gereed is moet het netwerk herstart worden.",
-/* TR_RESTORE */
-"Terugzetten",
-/* TR_RESTORE_CONFIGURATION */
-"Als u een diskette heeft met een %s systeemconfiguratie daarop, plaats dan de diskette in het station en druk op de terugzetten-knop.",
-/* TR_ROOT_PASSWORD */
-"'root' wachtwoord",
-/* TR_SECONDARY_DNS */
-"Secundaire DNS:",
-/* TR_SECONDARY_DNS_CR */
-"Secundaire DNS\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"Secundaire DNS opgegeven zonder een primaire DNS",
-/* TR_SECTION_MENU */
-"Sectiemenu",
-/* TR_SELECT */
-"Selecteer",
-/* TR_SELECT_CDROM_TYPE */
-"Selecteer CDROM type",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"Er is geen CD-ROM gedetecteerd in deze machine. Maak een keuze uit de volgende drivers waarmee %s de CD-ROM kan benaderen.",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Selecteer installatiemedium",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s kan worden geïnstalleerd vanuit verschillende bronnen. De eenvoudigste manier is om de CDROM-speler van de machine te gebruiken. Als de computer geen CDROM-speler heeft, dan kunt vanaf een andere machine installeren die de installatiebestanden beschikbaar kan maken over het netwerk via HTTP of FTP.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Selecteer netwerkdriver",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Selecteer de netwerkdriver voor de aanwezige kaart in deze machine. Als u HANDMATIG selecteert, krijgt u de mogelijkheid om de driver modulenaam en parameters op te geven voor drivers met speciale eisen, zoals voor ISA-kaarten.",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Selecteer de interface die u wilt herconfigureren.",
-/* TR_SELECT_THE_ITEM */
-"Selecteer het item dat u wilt configureren.",
-/* TR_SETTING_ADMIN_PASSWORD */
-"Instellen van %s 'admin' gebruikerswachtwoord...",
-/* TR_SETTING_ROOT_PASSWORD */
-"Instellen van 'root' wachtwoord....",
-/* TR_SETTING_SETUP_PASSWORD */
-"WORDT VERWIJDERD",
-/* TR_SETUP_FINISHED */
-"Setup is afgerond. Druk Ok.",
-/* TR_SETUP_NOT_COMPLETE */
-"Initiële setup was niet volledig afgerond. Verzeker u ervan dat de setup goed is afgerond door het setup programma nogmaals vanaf de commandoregel te starten.",
-/* TR_SETUP_PASSWORD */
-"WORDT VERWIJDERD",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Instellen additionele moduleparameters",
-/* TR_SINGLE_GREEN */
-"Uw configuratie is ingesteld voor een enkele GROENE interface.",
-/* TR_SKIP */
-"Overslaan",
-/* TR_START_ADDRESS */
-"Beginadres:",
-/* TR_START_ADDRESS_CR */
-"Beginadres\n",
-/* TR_STATIC */
-"Statisch",
-/* TR_SUGGEST_IO */
-"(voorstel %x)",
-/* TR_SUGGEST_IRQ */
-"(voorstel %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"Deze drivermodule is al geladen.",
-/* TR_TIMEZONE */
-"Tijdzone",
-/* TR_TIMEZONE_LONG */
-"Kies de tijdzone waar u zich bevindt uit de lijst hieronder.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"Kan de CDROM niet uitwerpen.",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Kan de modules niet uitpakken.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Kan geen additionele drivers vinden.",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Kan geen ISDN-kaart vinden in deze computer. U kunt extra module parameters opgeven als het een ISA-kaart betreft of als het speciale eisen heeft.",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"Kan de ISDN-kaart niet initialiseren.",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Kan de bestanden niet installeren.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Kan de taalbestanden niet installeren.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"Kan GRUB niet installeren.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Kan de drivermodule niet laden.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Kan het boot bestandssysteem niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Kan het log bestandssysteem niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Kan het root bestandssysteem niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Kan het swap bestandssysteem niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Kan de symlink /dev/harddisk niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Kan de symlink /dev/harddisk1 niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Kan de symlink /dev/harddisk2 niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Kan de symlink /dev/harddisk3 niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Kan de symlink /dev/harddisk4 niet aanmaken.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Kan de symlink /dev/root niet aanmaken.",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Kan het boot bestandssysteem niet koppelen.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Kan het log bestandssysteem niet koppelen.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Kan het proc bestandssysteem niet koppelen.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Kan het root bestandssysteem niet koppelen.",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Kan de swap partitie niet koppelen.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Kan het hosts-bestand niet openen.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Kan het instellingenbestand niet openen",
-/* TR_UNABLE_TO_PARTITION */
-"Kan de schijf niet partitioneren.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Kan de tijdelijke gedownloade bestanden niet verwijderen.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Kan de hostnaam niet instellen.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"Kan het CDROM-/diskettestation niet ontkoppelen.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Kan de vaste schijf niet ontkoppelen.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Kan /etc/fstab niet wegschrijven",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Kan /etc/hostname niet wegschrijven",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Kan /etc/hosts niet wegschrijven.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Kan /etc/hosts.allow niet wegschrijven.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Kan /etc/hosts.deny niet wegschrijven.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Kan %s/ethernet/settings niet wegschrijven.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Kan %s/main/hostname.conf niet wegschrijven.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Kan %s/main/settings niet wegschrijven.",
-/* TR_UNCLAIMED_DRIVER */
-"Er is een ongebruikte ethernetkaart van het type:\n%s\n\nU kunt deze toewijzen aan:",
-/* TR_UNKNOWN */
-"ONBEKEND",
-/* TR_UNSET */
-"NIET INGESTELD",
-/* TR_USB_KEY_VFAT_ERR */
-"Deze USB-sleutel is ongeldig (geen vfat partitie gevonden).",
-/* TR_US_NI1 */
-"US NI1",
-/* TR_WARNING */
-"WAARSCHUWING",
-/* TR_WARNING_LONG */
-"Als u dit IP-adres wijzigt, en u bent op afstand ingelogd, dan zal de verbinding naar de %s machine worden verbroken en u zult opnieuw moeten verbinden naar het nieuwe IP-adres. Dit is een riskante handeling en moet alleen geprobeerd worden als u fysieke toegang tot de machine hebt, in het geval er iets fout gaat.",
-/* TR_WELCOME */
-"Welkom bij het %s installatieprogramma. Als u 'annuleren' kiest op een van de volgende schermen selecteert zal de computer herstarten.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Uw configuratie is ingesteld voor een enkele GROENE interface, welke al een driver toegewezen heeft.",
-/* TR_YES */
-"Ja",
-/* TR_NO */
-"Nee",
-/* TR_AS */
-"als",
-/* TR_IGNORE */
-"Negeer",
-/* TR_PPP_DIALUP */
-"PPP DIALUP (PPPoE, modem, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"Start DHCP-server ...",
-/* TR_DHCP_STOPSERVER */
-"Stopt DHCP-server ...",
-/* TR_LICENSE_ACCEPT */
-"Ik accepteer deze licentie.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"Licentie niet geaccepteerd. Stopt!",
-/* TR_EXT2FS_DESCR */
-"Ext2 - Bestandssysteem zonder journal (geschikt voor flashdrives)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - Bestandssysteem met journal",
-/* TR_EXT4FS_DESCR */
-"Ext4 - Bestandssysteem met journal",
-/* TR_REISERFS_DESCR */
-"ReiserFS - Bestandssysteem met journal",
-/* TR_NO_LOCAL_SOURCE */
-"Geen lokale bronmedia gevonden. Start download.",
-/* TR_DOWNLOADING_ISO */
-"Downloaden van installatie-image ...",
-/* TR_DOWNLOAD_ERROR */
-"Fout tijdens downloaden!",
-/* TR_DHCP_FORCE_MTU */
-"Forceer DHCP mtu:",
-/* TR_IDENTIFY */
-"Identificeer",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Geselecteerde poort zou nu moeten knipperen ...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"Functie wordt niet ondersteund door deze poort.",
-};
diff --git a/langs/pl/install/lang_pl.c b/langs/pl/install/lang_pl.c
deleted file mode 100644 (file)
index dddf551..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- * Polish (pl) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPCop is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPCop 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPCop; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- * 
- * (c) IPFire Team  <info@ipfire.org>
- *
- */
-#include "libsmooth.h"
-
-char *pl_tr[] = {
-
-/* TR_ISDN */
-"ISDN",
-/* TR_ERROR_PROBING_ISDN */
-"Nie można przeprowadzić wyszukiwania urządzeń ISDN.",
-/* TR_PROBING_ISDN */
-"Wyszukiwanie i konfiguracja urządzeń ISDN.",
-/* TR_MISSING_GREEN_IP */
-"Brak adresu IP interfejsu Green!",
-/* TR_CHOOSE_FILESYSTEM */
-"Proszę wybrać system plików:",
-/* TR_NOT_ENOUGH_INTERFACES */
-"Brak wystarczającej liczby urządzeń sieciowych.\n\nPotrzebne: %d - Dostępne: %d\n",
-/* TR_INTERFACE_CHANGE */
-"Proszę wybrać interfejs dla którego chcesz wprowadzić zmiany.\n\n",
-/* TR_NETCARD_COLOR */
-"Przypisane karty",
-/* TR_REMOVE */
-"Usuń",
-/* TR_MISSING_DNS */
-"Brakujący DNS.\n",
-/* TR_MISSING_DEFAULT */
-"Brak bramy domyślnej.\n",
-/* TR_JOURNAL_EXT3 */
-"Tworzenie dziennika dla Ext3...",
-/* TR_CHOOSE_NETCARD */
-"Proszę wybrać urządzenie sieciowe dla interfejsu - %s.",
-/* TR_NETCARDMENU2 */
-"Rozszerzone menu sieci",
-/* TR_ERROR_INTERFACES */
-"W twoim systemie nie ma wolnych interfejsów.",
-/* TR_REMOVE_CARD */
-"Czy usunąć przydział dla tej karty sieciowej? - %s",
-/* TR_JOURNAL_ERROR */
-"Nie można utworzyć dziennika, nastąpi powrót do ext2.",
-/* TR_FILESYSTEM */
-"Wybierz system plików",
-/* TR_ADDRESS_SETTINGS */
-"Ustawienia adresów",
-/* TR_ADMIN_PASSWORD */
-"hasło 'admina' ",
-/* TR_AGAIN_PROMPT */
-"Powtórz:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"Wszystkie karty przypisano poprawnie.",
-/* TR_AUTODETECT */
-"* AUTODETECT *",
-/* TR_BUILDING_INITRD */
-"Tworzenie ramdisk...",
-/* TR_CANCEL */
-"Anuluj",
-/* TR_CARD_ASSIGNMENT */
-"Przypisywanie kart",
-/* TR_CHECKING */
-"Sprawdzanie URL...",
-/* TR_CHECKING_FOR */
-"Sprawdzanie dla: %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Wybierz kartę ISDN zainstalowaną w tym komputerze.",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"Wybierz wymagany protokół ISDN.",
-/* TR_CONFIGURE_DHCP */
-"Skonfiguruj serwer DHCP wprowadzając odpowiednie ustawienia.",
-/* TR_CONFIGURE_NETWORKING */
-"Konfiguruj sieć",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"Teraz powinieneś skonfigurować sieć poprzez załadowanie odpowiedniego sterownika dla interfejsu GREEN. Możesz skorzystać z automatycznego wykrywania kart sieciowych lub wybrać odpowiedni sterownik z listy. Pamiętaj - jeżeli posiadasz zainstalowaną więcej niż jedną kartę sieciową ich konfigurację będzie można przeprowadzić w dalszej części procesu instalacji. Pamiętaj także, że jeżeli posiadasz więcej niż jedną kartę sieciową takiego samego typu jak GREEN i każda z nich wymaga specjalnych parametrów modułu należy wprowadzić parametry dla wszystkich kart tego typu tak aby możliwe było aktywowanie interfejsu GREEN po jego konfiguracji.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Konfiguracja sterowników oraz przydział kart sieciowych do interfejsów. Aktualna konfiguracja wygląda następująco:\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Skonfiguruj CDROM wybierając odpowiedni adres IO i/lub IRQ.",
-/* TR_CONGRATULATIONS */
-"Gratulacje!",
-/* TR_CONGRATULATIONS_LONG */
-"%s został prawidłowo zainstalowany. Proszę usunąć płytę CD z komputera. Uruchomiony zostanie program konfiguracyjny umożliwiający ustawienie połączenia ISDN, kart sieciowych oraz haseł. Po wprowadzeniu ustawień powinieneś otworzyć w przeglądare adres https://%s:444 (lub wprowadzoną nazwę %s) aby przejść do panelu zarządzania systemem.",
-/* TR_CONTINUE_NO_SWAP */
-"Twój dysk twardy jest bardzo mały. Możesz kontynuować, ale utworzona zostanie bardzo mała przestrzeń swap. (Używaj ostrożnie).",
-/* TR_CURRENT_CONFIG */
-"Aktualna konfiguracja: %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Brama domyślna:",
-/* TR_DEFAULT_GATEWAY_CR */
-"Brama domyślna\n",
-/* TR_DEFAULT_LEASE */
-"Domyślny czas dzierżawy (minut):",
-/* TR_DEFAULT_LEASE_CR */
-"Domyślny czas dzierżawy\n",
-/* TR_DETECTED */
-"Wykryto: %s",
-/* TR_DHCP_HOSTNAME */
-"Nazwa hosta DHCP:",
-/* TR_DHCP_HOSTNAME_CR */
-"Nazwa hosta DHCP\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"Konfiguracja serwera DHCP",
-/* TR_DISABLED */
-"Wyłączone",
-/* TR_DISABLE_ISDN */
-"Wyłącz ISDN",
-/* TR_DISK_TOO_SMALL */
-"Twój dysk jest za mały.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"Ustawienia DNS i bramy",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"Wprowadź informacje o DNS i bramie. Te ustawienie są używane tylko dla statycznego IP (i DHCP jeżeli ustawiono DNS) na interfejsie RED.",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Twoja konfiguracja nie wykorzystuje karty ethernet jako interfejsu RED.  Informacje o DNS i bramie są wprowadzane automatycznie dla połączeń typu dialup przy połączeniu.",
-/* TR_DOMAINNAME */
-"Nazwa domeny",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Nazwa domeny nie może być pusta.",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"Nazwa domeny nie może zawierać spacji.",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Domain name may only contain letters, numbers, hyphens and periods.",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Sufix nazwy domeny:",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Sufix nazwy domeny\n",
-/* TR_DONE */
-"Gotowe",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\nCzy chcesz zmienić te ustawienia?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Przypisywanie sterowników i kart",
-/* TR_ENABLED */
-"Włączone",
-/* TR_ENABLE_ISDN */
-"Włącz ISDN",
-/* TR_END_ADDRESS */
-"Adres końcowy:",
-/* TR_END_ADDRESS_CR */
-"Adres końcowy\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Niektóre karty ISDN (w szczególności ISA) mogą wymagać dodatkowych parametrów modułu w celu ustawienia IRQ i adresu IO. Jeżeli posiadasz tego typu kartę wprowadź te dodatkowe parametry tutaj. Na przykład: \"io=0x280 irq=9\". Zostaną one użyte podczas wykrywania kart.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"Podaj hasło użytkownika 'admin' dla %s .  Jest to użytkownik na którego będziesz logował się do interfejsu WWW aby zarządzać %s .",
-/* TR_ENTER_DOMAINNAME */
-"Wprowadź nazwę domeny",
-/* TR_ENTER_HOSTNAME */
-"Podaj nazwę hosta dla maszyny.",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"Wprowadź informacje o adresie IP",
-/* TR_ENTER_NETWORK_DRIVER */
-"Nie można wykryć kart sieciowych automatycznie. Wprowadź sterownik oraz dodatkowe parametry dla karty sieciowej.",
-/* TR_ENTER_ROOT_PASSWORD */
-"Podaj hasło użytkownika 'root' . Jest to użytkownik wykorzystywany do logowania do linii poleceń.",
-/* TR_ENTER_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"Wprowadź informacje o adresie IP dla interfejsu %s .",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Wprowadź lokalny numer telefonu (MSN/EAZ).",
-/* TR_ENTER_URL */
-"Wprowadź adres URL do ipcop-<version>.tgz i plików images/scsidrv-<version>.img . UWAGA: DNS niedostępny! URL powinien wyglądać następująco http://X.X.X.X/<katalog>",
-/* TR_ERROR */
-"Błąd",
-/* TR_ERROR_PROBING_CDROM */
-"Nie znaleziono napędu CDROM.",
-/* TR_ERROR_WRITING_CONFIG */
-"Błąd zapisywania informacji o konfiguracji.",
-/* TR_EURO_EDSS1 */
-"Euro (EDSS1)",
-/* TR_EXTRACTING_MODULES */
-"Wypakowywanie modułów...",
-/* TR_FAILED_TO_FIND */
-"Nie można odnaleźć pliku URL.",
-/* TR_FOUND_NIC */
-"%s wykrył następujące urządzenia NIC w twojej maszynie: %s",
-/* TR_GERMAN_1TR6 */
-"German 1TR6",
-/* TR_HELPLINE */
-"              <Tab>/<Alt-Tab> pomiędzy pozycjami   |  <Space> wybór",
-/* TR_HOSTNAME */
-"Nazwa hosta",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Nazwa hosta nie może być pusta.",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Nazwa hosta nie może zawierać spacji.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"Nazwa hosta może zawierać tylko listery, cyfry i łączniki.",
-/* TR_INITIALISING_ISDN */
-"Inicjalizacja ISDN...",
-/* TR_INSERT_CDROM */
-"Proszę włożyć %s CD do napędu CDROM.",
-/* TR_INSERT_FLOPPY */
-"Proszę włożyć dyskietkę ze sterownikami %s do napędu.",
-/* TR_INSTALLATION_CANCELED */
-"Instalacja anulowana.",
-/* TR_INSTALLING_FILES */
-"Instalowanie plików...",
-/* TR_INSTALLING_GRUB */
-"Instalowanie GRUB...",
-/* TR_INSTALLING_LANG_CACHE */
-"Instalowanie plików językowych...",
-/* TR_INTERFACE */
-"Interfejs - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"Nie można uruchomić interfejsu.",
-/* TR_INVALID_FIELDS */
-"Poniższe pola są niepoprawne:\n\n",
-/* TR_INVALID_IO */
-"Szczegóły portu IO są nieprawidłowe. ",
-/* TR_INVALID_IRQ */
-"Wprowadzone dane IRQ są niepoprawne.",
-/* TR_IP_ADDRESS_CR */
-"Adres IP\n",
-/* TR_IP_ADDRESS_PROMPT */
-"Adres IP:",
-/* TR_ISDN_CARD */
-"Karta ISDN",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"Nie wykryto karty ISDN. Możesz wprowadzić dodatkowe parametry modułu jeżeli posiadasz kartę ISA lub twoja karta ma specyficzne wymagania.",
-/* TR_ISDN_CARD_SELECTION */
-"Wybór karty ISDN",
-/* TR_ISDN_CONFIGURATION */
-"Konfiguracja ISDN",
-/* TR_ISDN_CONFIGURATION_MENU */
-"Menu konfiguracji ISDN",
-/* TR_ISDN_NOT_SETUP */
-"Nie skonfigurowano ISDN. Pewne pozycje nie zostały wybrane.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"ISDN nie został jeszcze skonfigurowany. Wybierz tą pozycję aby skonfigurować.",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"Wybór protokołu ISDN",
-/* TR_ISDN_STATUS */
-"ISDN jest obecnie %s.\n\n   Protokół: %s\n   Karta: %s\n   Lokalny numer telefonu: %s\n\nWybierz pozycję którą chcesz zmienić lub pozostaw obecną konfigurację.",
-/* TR_KEYBOARD_MAPPING */
-"Układ klawiatury",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Z poniższej listy wybierz układ klawiatury którego chcesz używać.",
-/* TR_LEASED_LINE */
-"Linia dzierżawiona",
-/* TR_LOADING_MODULE */
-"Ładowanie modułu...",
-/* TR_LOADING_PCMCIA */
-"Ładowanie modułów PCMCIA...",
-/* TR_LOOKING_FOR_NIC */
-"Wyszukiwanie: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Tworzenie systemu plików boot...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Tworzenie systemu plików log...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Tworzenie systemu plików root...",
-/* TR_MAKING_SWAPSPACE */
-"Tworzenie przestrzeni swap...",
-/* TR_MANUAL */
-"* RĘCZNIE *",
-/* TR_MAX_LEASE */
-"Maks czas dzierżawy (minut):",
-/* TR_MAX_LEASE_CR */
-"Maks czas dzierżawy\n",
-/* TR_MISSING_BLUE_IP */
-"Brak informacji o IP dla interfejsu BLUE.",
-/* TR_MISSING_ORANGE_IP */
-"Brak informacji o IP dla interfejsu ORANGE.",
-/* TR_MISSING_RED_IP */
-"Brak informacji o IP dla interfejsu RED.",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"Nazwa modułu nie może być pusta.",
-/* TR_MODULE_PARAMETERS */
-"Wprowadź nazwę modułu i parametry dla sterownika.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Montowanie systemu plików boot...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Montowanie systemu plików log...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Montowanie systemu plików root...",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Montowanie przestrzeni wymiany swap...",
-/* TR_MSN_CONFIGURATION */
-"Lokalny numer telefonu (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Maska sieci:",
-/* TR_NETWORKING */
-"Sieć",
-/* TR_NETWORK_ADDRESS_CR */
-"Adres sieci\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Adres sieci:",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Menu konfiguracji sieci",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Typ konfiguracji sieci",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"Wybierz typ konfiguracji sieci dla %s.  Poniższe typy konfiguracji uwzględniają podłączone interfejsy typu ethernet. Jeżeli zmienisz te ustawienia sieć zostanie uruchomiona ponownie i koniecznie będzie ponowne przypisanie sterowników kart.",
-/* TR_NETWORK_MASK_CR */
-"Maska sieci\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Błąd konfiguracji sieci.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"Nie można przydzielić wymaganej liczby kart.",
-/* TR_NO_BLUE_INTERFACE */
-"Nie przypisano interfejsu BLUE.",
-/* TR_NO_CDROM */
-"Nie znaleziono CD-ROM'u.",
-/* TR_NO_GREEN_INTERFACE */
-"Nie przypisano interfejsu GREEN.",
-/* TR_NO_HARDDISK */
-"Nie znaleziono dysku twardego.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"Nie znaleziono archiwum tar ipcop na serwerze Web.",
-/* TR_NO_ORANGE_INTERFACE */
-"Nie przypisano interfejsu ORANGE.",
-/* TR_NO_RED_INTERFACE */
-"Nie przypisano interfejsu RED.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"Nie znaleziono obrazu SCSI na serwerze Web.",
-/* TR_NO_UNALLOCATED_CARDS */
-"Nie pozostało więcej nieprzypisanych kart. Możesz wykorzystać automatyczne wykrywanie aby poszukać więcej kart, lub ręcznie wybrać sterownik z listy.",
-/* TR_OK */
-"Ok",
-/* TR_PARTITIONING_DISK */
-"Partycjonowanie dysku...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Hasła nie są identyczne.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"Hasło nie może być puste.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"Hasło nie może zawierać spacji.",
-/* TR_PASSWORD_PROMPT */
-"Hasło:",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Numer telefonu nie może być pusty.",
-/* TR_PREPARE_HARDDISK */
-"Program instalacyjny przygotuje dysk na %s. Nastąpi partycjonowanie dysku, a następnie utworzone zostaną systemy plików na partycjach.",
-/* TR_PRESS_OK_TO_REBOOT */
-"Naciśnij OK aby uruchomić ponownie.",
-/* TR_PRIMARY_DNS */
-"Podstawowy DNS:",
-/* TR_PRIMARY_DNS_CR */
-"Podstawowy DNS\n",
-/* TR_PROBE */
-"Sprawdź",
-/* TR_PROBE_FAILED */
-"Błąd automatycznego wykrywania.",
-/* TR_PROBING_HARDWARE */
-"Sprawdzanie sprzętu...",
-/* TR_PROBING_FOR_NICS */
-"Sprawdzanie interfejsów NIC...",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"Problem podczas ustawiania hasła dla użytkownika %s 'admin' .",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"Problem podczas ustawiania hasła dla użytkownika 'root' .",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_PROTOCOL_COUNTRY */
-"Protokół/Kraj",
-/* TR_PULLING_NETWORK_UP */
-"Uruchamianie sieci...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Wyłączanie sieci...",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Wyłączanie sieci innych niż lokalna...",
-/* TR_QUIT */
-"Wyjście",
-/* TR_RED_IN_USE */
-"ISDN (lub inne zewnętrzne połączenie) jest aktualnie w użyciu.  Nie możesz skonfigurować ISDN kiedy interfejs RED jest aktywny.",
-/* TR_RESTART_REQUIRED */
-"\n\nPo zakończeniu konfiguracji wymagane będzie ponowne uruchomienie sieci.",
-/* TR_RESTORE */
-"Przywróć",
-/* TR_RESTORE_CONFIGURATION */
-"Jeżeli posiadasz dyskietkę zawierającą konfigurację systemu %s , umieść ją w napędzie dyskietek i naciśnij przycisk Przywróć.",
-/* TR_ROOT_PASSWORD */
-"hasło 'root'",
-/* TR_SECONDARY_DNS */
-"Drugi DNS:",
-/* TR_SECONDARY_DNS_CR */
-"Drugi DNS\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"Zdefiniowano drugi DNS bez podania podstawowego",
-/* TR_SECTION_MENU */
-"Section menu",
-/* TR_SELECT */
-"Wybierz",
-/* TR_SELECT_CDROM_TYPE */
-"Wybierz typ CDROM",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"Nie wykryto CD-ROM'u w tym komputerze. Proszę wybrać sterowniki których chcesz użyć aby %s mógł uzyskać dostęp do CD-ROM.",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Wybierz nośnik instalacji",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s może być zainstalowany z wielu źródeł. Najprostszym sposobem jest instalacja z napędu CDROM. Jeżeli ten komputer nie posiada takiego napędu możesz przeprowadzić instalację z innego komputera w sieci LAN udostępniającego pliki przez HTTP lub FTP.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Wybierz sterownik karty sieciowej",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Wybierz sterownik dla karty sieciowej zainstalowanej w komputerze. Jeżeli wybierzesz ręczne przypisywanie sterowników będziesz miał możliwość wprowadzenie modułu sterownika i dodatkowych parametrów wymaganych przez niektóre karty (np. ISA).",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Wybierz interfejs którego konfigurację chcesz zmienić.",
-/* TR_SELECT_THE_ITEM */
-"Wybierz pozycję którą chcesz konfigurować.",
-/* TR_SETTING_ADMIN_PASSWORD */
-"Ustawianie hasła dla użytkownika 'admin' %s ...",
-/* TR_SETTING_ROOT_PASSWORD */
-"Ustawianie hasła użytkownika 'root' ....",
-/* TR_SETTING_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_SETUP_FINISHED */
-"Zakończono konfigurowanie.  Naciśnij Ok.",
-/* TR_SETUP_NOT_COMPLETE */
-"Początkowo konfiguracja nie jest kompletna. Należy upewnić się, że ustawienia są poprawne przez uruchomienie programu konfiguracyjnego (polecenia setup z linii poleceń).",
-/* TR_SETUP_PASSWORD */
-"TO BE REMOVED",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Ustaw dodatkowe parametry modułu",
-/* TR_SINGLE_GREEN */
-"Twoja konfiguracja zezwala tylko na 1 interfejs GREEN.",
-/* TR_SKIP */
-"Pomiń",
-/* TR_START_ADDRESS */
-"Adres początkowy:",
-/* TR_START_ADDRESS_CR */
-"Adres początkowy\n",
-/* TR_STATIC */
-"Statycznie",
-/* TR_SUGGEST_IO */
-"(sugerowane %x)",
-/* TR_SUGGEST_IRQ */
-"(sugerowane %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"Moduł sterownika jest już załadowany.",
-/* TR_TIMEZONE */
-"Strefa czasowa",
-/* TR_TIMEZONE_LONG */
-"Wybierz strefę czasową z poniższej listy.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"Nie można wysunąć CDROM'u.",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Nie można wypakować modułów.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Nie można odnaleźć dodatkowych sterowników.",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Nie można odnaleźć karty ISDN w tym komputerze. Może być konieczne zdefiniowanie dodatkowych parametrów modułu jeżeli karta jest typu ISA lub ma specyficzne wymagania.",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"Nie można zainicjować ISDN.",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Nie można zainstalować plików.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Nie można zainstalować plików językowych.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"Nie można zainstalować GRUB'a.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Nie można zainstalować modułu sterownika.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Nie można utowrzyć systemu plików boot.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Nie można utowrzyć systemu plików log.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Nie można utowrzyć systemu plików root.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Nie można utworzyć przestrzeni swap.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Nie można utworzyć linku symbolicznego /dev/harddisk.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Nie można utworzyć linku symbolicznego /dev/harddisk1.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Nie można utworzyć linku symbolicznego /dev/harddisk2.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Nie można utworzyć linku symbolicznego /dev/harddisk3.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Nie można utworzyć linku symbolicznego /dev/harddisk4.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Nie można utworzyć linku symbolicznego /dev/root.",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Nie można zamontować systemu plików boot.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Nie można zamontować systemu plików log.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Nie można zamontować systemu plików proc.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Nie można zamontować systemu plików root.",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Nie można zamontować partycji swap.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Nie można otworzyć głównego plików z hostami.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Nie można utworzyć pliku ustawień",
-/* TR_UNABLE_TO_PARTITION */
-"Nie można utworzyć partycji na dysku.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Nie można usunąć pobranych plików tymczasowych.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Nie można ustawić nazwy hosta.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"Nie można odmontować CDROM'u lub dyskietki.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Nie można odmontować harddisk.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Nie można zapisać /etc/fstab",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Nie można zapisać /etc/hostname",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Nie można zapisać /etc/hosts.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Nie można zapisać /etc/hosts.allow.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Nie można zapisać /etc/hosts.deny.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Nie można zapisać %s/ethernet/settings.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Nie można zapisać %s/main/hostname.conf",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Nie można zapisać %s/main/settings.",
-/* TR_UNCLAIMED_DRIVER */
-"Istnieje nieprzydzielona karta ethernet typu:\n%s\n\nMożesz ją przypisać do:",
-/* TR_UNKNOWN */
-"NIEZNANY",
-/* TR_UNSET */
-"UNSET",
-/* TR_USB_KEY_VFAT_ERR */
-"Ten nośnik USB jest nieprawidłowy (nie znaleziono partycji vfat).",
-/* TR_US_NI1 */
-"US NI1",
-/* TR_WARNING */
-"UWAGA",
-/* TR_WARNING_LONG */
-"Jeżeli zmienisz ten adres IP i jesteś zdalnie zalogowany twoje połączenie z %s zostnie przerwane i konieczne będzie ponowne zalogowanie na nowy adres IP. Jest to ryzykowna operacja i powinna być wykonywana tylko w sytuacji kiedy możliwy jest fizyczny dostęp do maszyny gdyby coś poszło nie tak.",
-/* TR_WELCOME */
-"Witaj w programie instalacyjnym %s . Wybranie przycisku Anuluj na kolejnych ekranach spowoduje ponowne uruchomienie komputera.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Twoja konfiguracja zezwala na jeden interfejs GREEN, który posiada już przypisany sterownik.",
-/* TR_YES */
-"Tak",
-/* TR_NO */
-"Nie",
-/* TR_AS */
-"jako",
-/* TR_IGNORE */
-"Ignoruj",
-/* TR_PPP_DIALUP */
-"PPP DIALUP (PPPoE, modem, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"Uruchamianie serwera DHCP ...",
-/* TR_DHCP_STOPSERVER */
-"Zatrzymywanie serwera DHCP ...",
-/* TR_LICENSE_ACCEPT */
-"Akceptuję licencję.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"Nie zaakceptowano licencji.Wyjście!",
-/* TR_EXT2FS_DESCR */
-"Ext2 - System plików bez dziennika (zalecany dla napędów flash)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - System plików z dziennikiem",
-/* TR_EXT4FS_DESCR */
-"Ext4 - System plików z dziennikiem",
-/* TR_REISERFS_DESCR */
-"ReiserFS - System plików z dziennikiem",
-/* TR_NO_LOCAL_SOURCE */
-"Brak lokalnego źródła. Rozpoczynanie pobierania.",
-/* TR_DOWNLOADING_ISO */
-"Pobieranie obrazu instalacyjnego ...",
-/* TR_DOWNLOAD_ERROR */
-"Błąd podczas pobierania!",
-/* TR_DHCP_FORCE_MTU */
-"Wymuś mtu DHCP:",
-/* TR_IDENTIFY */
-"Identify",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Selected port should blink now ...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"Function is not supported by this port.",
-};
diff --git a/langs/ru/install/lang_ru.c b/langs/ru/install/lang_ru.c
deleted file mode 100644 (file)
index 40293a2..0000000
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- * Russian (ru) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPFire is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPFire 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPCop; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- * 
- * (c) IPFire Team  <info@ipfire.org>
- *
- */
-#include "libsmooth.h"
-
-char *ru_tr[] = {
-/* TR_ISDN */
-"ISDN",
-/* TR_ERROR_PROBING_ISDN */
-"Невозможно просканировать ISDN устройства.",
-/* TR_PROBING_ISDN */
-"ISDN устройства сканируются и настраиваются.",
-/* TR_MISSING_GREEN_IP */
-"Не найден Green IP!",
-/* TR_CHOOSE_FILESYSTEM */
-"Пожалуйста укажите вашу файловую систему:",
-/* TR_NOT_ENOUGH_INTERFACES */
-"Недостаточно сетевых карт для Вашего выбора.\n\nНеобходимо: %d - Доступно: %d\n",
-/* TR_INTERFACE_CHANGE */
-"Пожалуйста укажите интерфейс, который хотите изменить.\n\n",
-/* TR_NETCARD_COLOR */
-"Назначенные карты",
-/* TR_REMOVE */
-"Удалить",
-/* TR_MISSING_DNS */
-"Не найден DNS.\n",
-/* TR_MISSING_DEFAULT */
-"Не найден шлюз.\n",
-/* TR_JOURNAL_EXT3 */
-"Создаются журналы для Ext3...",
-/* TR_CHOOSE_NETCARD */
-"Пожалуйста укажите сетевую карту для следующего интерфейса - %s.",
-/* TR_NETCARDMENU2 */
-"Расширенное сетевое меню",
-/* TR_ERROR_INTERFACES */
-"В Вашей системе нет свободных интерфейсов.",
-/* TR_REMOVE_CARD */
-"Удалить сетевую карту? - %s",
-/* TR_JOURNAL_ERROR */
-"Не получилось создать журнал, пробуем ext2.",
-/* TR_FILESYSTEM */
-"Укажите файловую систему",
-/* TR_ADDRESS_SETTINGS */
-"Настройки адреса",
-/* TR_ADMIN_PASSWORD */
-"Пароль 'admin'",
-/* TR_AGAIN_PROMPT */
-"Ещё раз:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"Все карты успешно установлены.",
-/* TR_AUTODETECT */
-"* АВТООПРЕДЕЛЕНИЕ *",
-/* TR_BUILDING_INITRD */
-"Создаётся ramdisk...",
-/* TR_CANCEL */
-"Отмена",
-/* TR_CARD_ASSIGNMENT */
-"Установка карт",
-/* TR_CHECKING */
-"Проверяется URL...",
-/* TR_CHECKING_FOR */
-"Проверка для: %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Укажите ISDN карту, установленную в этом компьютере.",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"Укажите необходимый ISDN протокол.",
-/* TR_CONFIGURE_DHCP */
-"Введите необходимые настройки DHCP сервера.",
-/* TR_CONFIGURE_NETWORKING */
-"Настройка сети",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"Необходимо настроить сеть, загрузив драйвер для  GREEN интерфейса. Вы можете воспользоваться автоподбором драйвера для сетевой карты или самостоятельно указать его из списка. Позже Вы сможете подобрать драйвер и для остальных сетевых карт. Также, если у Вас более одной карты такого же типа, как для GREEN интерфейса, и каждая требует особых параметров, то Вам следует указать эти параметры, чтобы все карты были активны во время настройки GREEN интерфейса.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Назначьте драйверы интерфейсам. Текущая конфигурация следующая:\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Для настройки CDROM необходимо указать его IO адрес и/или IRQ.",
-/* TR_CONGRATULATIONS */
-"Поздравляем!",
-/* TR_CONGRATULATIONS_LONG */
-"%s был успешно установлен. Пожалуйста достаньте CD диск из привода. Далее будет предложена настройка ISDN, сетевых карт, и системных паролей. После окончания установки появится возможность настройки сервера с помощью браузера через веб-интерфейс по адресу https://%s:444 (или по имени, которое Вы указали для %s), где будет предложена настройка dialup подключения (если требуется) и удалённого доступа.",
-/* TR_CONTINUE_NO_SWAP */
-"Ваш жёсткий диск слишком мал, но установка всё же возможна с очень маленьким разделом swap. (Будьте внимательны).",
-/* TR_CURRENT_CONFIG */
-"Текущая конфигурация: %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Основной шлюз:",
-/* TR_DEFAULT_GATEWAY_CR */
-"Основной шлюз\n",
-/* TR_DEFAULT_LEASE */
-"Аренда по умолчанию (в минутах):",
-/* TR_DEFAULT_LEASE_CR */
-"Время аренды по умолчанию\n",
-/* TR_DETECTED */
-"Обнаружен: %s",
-/* TR_DHCP_HOSTNAME */
-"Имя хоста DHCP:",
-/* TR_DHCP_HOSTNAME_CR */
-"Имя хоста DHCP\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"Настройка DHCP сервера",
-/* TR_DISABLED */
-"Выключен",
-/* TR_DISABLE_ISDN */
-"Выключить ISDN",
-/* TR_DISK_TOO_SMALL */
-"Ваш жёсткий диск слишком мал.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"Настройка DNS и шлюза",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"Введите DNS шлюз.  Эти настройки используются только со статическим IP (и DHCP если указан DNS) на RED интерфейсе.",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Ваши настройки не используются ethernet адаптером для  RED интерфейса.  Информация о DNS и шлюзе для пользователей dialup получается автоматически при подключении.",
-/* TR_DOMAINNAME */
-"Имя домена",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Имя домена не может быть пустым.",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"В имени домена не должно быть пробелов.",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Имя домена может содержать только буквы, цифры, дефисы и нижние подчёркивания.",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Префикс доменного имени:",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Префикс доменного имени\n",
-/* TR_DONE */
-"Готово",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\nХотите поменять эти настройки?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Назначение драйверов и карт",
-/* TR_ENABLED */
-"Включено",
-/* TR_ENABLE_ISDN */
-"Включить ISDN",
-/* TR_END_ADDRESS */
-"Конечный адрес:",
-/* TR_END_ADDRESS_CR */
-"Конечный адрес\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Некоторые ISDN карты (особенно ISA) Могут потребовать дополнительных параметров для задания IRQ и IO адреса. Если у Вас такая  ISDN карта, введите эти параметры тут. Пример: \"io=0x280 irq=9\". Эти параметры будут использоваться во время определения карты.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"Введите %s 'admin' пароль.  Эта учётная запись используется для входа на веб интерфейс %s.",
-/* TR_ENTER_DOMAINNAME */
-"Введите имя домена",
-/* TR_ENTER_HOSTNAME */
-"Введите имя хоста.",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"введите IP адрес",
-/* TR_ENTER_NETWORK_DRIVER */
-"Не удалось автоматически определить сетевую карту. Введите дополнительные параметры для этой сетевой карты.",
-/* TR_ENTER_ROOT_PASSWORD */
-"Введите пароль для 'root'. Эта учётная запись используется для доступа с командной строки.",
-/* TR_ENTER_SETUP_PASSWORD */
-"БУДЕТ УДАЛЁН",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"Введите IP адрес для %s интерфейса.",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Введите номер телефона (MSN/EAZ).",
-/* TR_ENTER_URL */
-"Укажите URL к ipcop-<version>.tgz и images/scsidrv-<version>.img файлам. ВНИМАНИЕ: DNS не работает! Пример: http://X.X.X.X/<directory>",
-/* TR_ERROR */
-"Ошибка",
-/* TR_ERROR_PROBING_CDROM */
-"Не найден привод CDROM.",
-/* TR_ERROR_WRITING_CONFIG */
-"Ошибка записи настроек.",
-/* TR_EURO_EDSS1 */
-"Евро (EDSS1)",
-/* TR_EXTRACTING_MODULES */
-"Модули извлекаются...",
-/* TR_FAILED_TO_FIND */
-"Не удалось найти файл по этому URL.",
-/* TR_FOUND_NIC */
-"%s обнаружил следующий NIC в Вашем компьютере: %s",
-/* TR_GERMAN_1TR6 */
-"German 1TR6",
-/* TR_HELPLINE */
-"              <Tab>/<Alt-Tab> Переключает   |  <Space> Выделяет",
-/* TR_HOSTNAME */
-"Имя хоста",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Имя хоста не может быть пустым.",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Имя хоста не может содержать пробелы.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"В имени хоста могут быть только буквы, цифры дефисы.",
-/* TR_INITIALISING_ISDN */
-"Устанавливается ISDN...",
-/* TR_INSERT_CDROM */
-"Пожалуйста вставьте %s CD в привод CDROM.",
-/* TR_INSERT_FLOPPY */
-"Пожалуйста вставьте %s дискету с драйверами в привод floppy.",
-/* TR_INSTALLATION_CANCELED */
-"Установка отменена.",
-/* TR_INSTALLING_FILES */
-"Устанавливаются файлы...",
-/* TR_INSTALLING_GRUB */
-"Устанавливается GRUB...",
-/* TR_INSTALLING_LANG_CACHE */
-"Устанавливаются языковые пакеты...",
-/* TR_INTERFACE */
-"Интерфейс - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"Не удалось поднять интерфейс.",
-/* TR_INVALID_FIELDS */
-"В следующих полях есть ошибки:\n\n",
-/* TR_INVALID_IO */
-"Параметры IO порта содержат ошибки. ",
-/* TR_INVALID_IRQ */
-"Параметры IRQ details содержат ошибки.",
-/* TR_IP_ADDRESS_CR */
-"IP адрес\n",
-/* TR_IP_ADDRESS_PROMPT */
-"IP адреса:",
-/* TR_ISDN_CARD */
-"ISDN карта",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"ISDN карта не найдена. Возможно стоит указать дополнительные параметры модулю, если у вас карта типа ISA или имеет особые параметры.",
-/* TR_ISDN_CARD_SELECTION */
-"выбор ISDN карты",
-/* TR_ISDN_CONFIGURATION */
-"Настройка ISDN",
-/* TR_ISDN_CONFIGURATION_MENU */
-"Меню настройки ISDN",
-/* TR_ISDN_NOT_SETUP */
-"ISDN не настроена. Некоторые элементы не были указаны.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"ISDN ещё не настроена. Укажите элемент, который хотите настроить.",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"выбор ISDN протокола",
-/* TR_ISDN_STATUS */
-"ISDN сейчас %s.\n\n   Протокол: %s\n   Карта: %s\n   Телефон: %s\n\nУкажите элемент для перенастройки, или сохраните текущие настройки.",
-/* TR_KEYBOARD_MAPPING */
-"Раскладка клавиатуры",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Укажите тип используемой клавиатуры из списка ниже. (обычно подходит ru_win )",
-/* TR_LEASED_LINE */
-"Зарезервированная строка",
-/* TR_LOADING_MODULE */
-"Грузится модуль...",
-/* TR_LOADING_PCMCIA */
-"Грузятся PCMCIA модули...",
-/* TR_LOOKING_FOR_NIC */
-"Поиск: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Создаётся файловой системы загрузчика...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Создаётся файловая система под логи...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Создаётся корневая файловая система...",
-/* TR_MAKING_SWAPSPACE */
-"Создаётся swap...",
-/* TR_MANUAL */
-"* MANUAL *",
-/* TR_MAX_LEASE */
-"Max аренда (минуты):",
-/* TR_MAX_LEASE_CR */
-"Время Max аренды\n",
-/* TR_MISSING_BLUE_IP */
-"Не указан IP на BLUE интерфейсе.",
-/* TR_MISSING_ORANGE_IP */
-"Не указан IP на ORANGE интерфейсе.",
-/* TR_MISSING_RED_IP */
-"Не указан IP на RED интерфейсе.",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"Имя модуля не может быть пустым.",
-/* TR_MODULE_PARAMETERS */
-"Введите имя модуля и параметры для нужного драйвера.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Монтируется файловая система для загрузчика...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Монтируется файловая система для логов...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Монтируется корневая файловая система...",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Монтируется swap...",
-/* TR_MSN_CONFIGURATION */
-"Номер телефона (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Маска подсети:",
-/* TR_NETWORKING */
-"Сеть",
-/* TR_NETWORK_ADDRESS_CR */
-"Сетевой адрес\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Сетевой адрес:",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Меню настройки сети",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Настройка типа сетевого подключения",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"Укажите сетевые настройки для %s.  Ниже представлен список для интернет подключения. Если Вы решите поменять эти настройки,Потребуется перезапуск сети, а так же потребуется переназначить драйвера сетевых карт.",
-/* TR_NETWORK_MASK_CR */
-"Маска подсети\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Не удалось настроить сеть.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"Выделено недостаточно сетевых карт.",
-/* TR_NO_BLUE_INTERFACE */
-"Не назначен BLUE интерфейс.",
-/* TR_NO_CDROM */
-"Не найден CD-ROM.",
-/* TR_NO_GREEN_INTERFACE */
-"Не назначен  GREEN интерфейс.",
-/* TR_NO_HARDDISK */
-"Не найден жсткий диск.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"На сервере не найден архив ipcop.",
-/* TR_NO_ORANGE_INTERFACE */
-"Не назначен ORANGE интерфейс.",
-/* TR_NO_RED_INTERFACE */
-"Не назначен RED интерфейс.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"По этому адресу не найден образ SCSI.",
-/* TR_NO_UNALLOCATED_CARDS */
-"Нужно больше карт. Можно попытаться поискать или указать другие карты на этой машине, или указать драйвер из списка ниже.",
-/* TR_OK */
-"Ok",
-/* TR_PARTITIONING_DISK */
-"Разбивка диска...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Пароли не совпадают.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"Пароль не может быть пустым.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"Пароль не должен содержать пробелы.",
-/* TR_PASSWORD_PROMPT */
-"Пароль:",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Номер телефона не может быть пустым.",
-/* TR_PREPARE_HARDDISK */
-"Мастер установки сейчас подготовит диски на %s. Сперва будет проводиться разбиение диска, а затем разделам будут назначены файловые системы.",
-/* TR_PRESS_OK_TO_REBOOT */
-"Нажмите Ok для перезагрузки.",
-/* TR_PRIMARY_DNS */
-"Основной DNS:",
-/* TR_PRIMARY_DNS_CR */
-"Основной DNS\n",
-/* TR_PROBE */
-"Пробовать",
-/* TR_PROBE_FAILED */
-"Не удалось определить автоматически.",
-/* TR_PROBING_HARDWARE */
-"Определение железа...",
-/* TR_PROBING_FOR_NICS */
-"Определение NIC...",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"Возникли проблемы при установке на %s пароля для 'admin'.",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"Возникли проблемы при установке пароля для 'root'.",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"БУДЕТ УДАЛЁН",
-/* TR_PROTOCOL_COUNTRY */
-"Протокол/Страна",
-/* TR_PULLING_NETWORK_UP */
-"Поднимаем сеть...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Отключаем сеть...",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Отключаем нелокальную сеть...",
-/* TR_QUIT */
-"Выход",
-/* TR_RED_IN_USE */
-"ISDN (или другое внешнее подключение) задействовано в данный момент.  Не получится настроить ISDN пока RED интерфейс активен.",
-/* TR_RESTART_REQUIRED */
-"\n\nПосле настройки потребуется перезапуск сети.",
-/* TR_RESTORE */
-"Восстановить",
-/* TR_RESTORE_CONFIGURATION */
-"Если у Вас есть floppy с настройками %s , вставьте floppy диск и нажмите кнопку восстановления.",
-/* TR_ROOT_PASSWORD */
-"пароль 'root'",
-/* TR_SECONDARY_DNS */
-"Второй DNS:",
-/* TR_SECONDARY_DNS_CR */
-"Второй DNS\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"Второй DNS указан без основного DNS",
-/* TR_SECTION_MENU */
-"Меню разделов",
-/* TR_SELECT */
-"Выбрать",
-/* TR_SELECT_CDROM_TYPE */
-"Выделить тип CDROM",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"Не найден CD-ROM на этой машине.  Пожалуйста укажите какой драйвер Вы собираетесь использовать, чтобы %s увидел CD-ROM.",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Укажите носитель с установщиком",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s может быть установлен разными способами.  Самый простой - использовать привод CDROM. Если его нет, то можно попробовать установку с другой машины в LAN сети, где установочные файлы доступны по HTTP или FTP протоколу.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Укажите сетевой драйвер",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Укажите драйвер для сетевой карты, установленной на этой машине. Если Вы указываете ВРУЧНУЮ, у Вас появится возможность задать название модуля драйвера и параметра для драйвера с особыми настройками, например для ISA карты.",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Укажите интерфейс для перенастройки.",
-/* TR_SELECT_THE_ITEM */
-"Укажите, что хотите настроить.",
-/* TR_SETTING_ADMIN_PASSWORD */
-"Записывается 'admin' пароль для %s...",
-/* TR_SETTING_ROOT_PASSWORD */
-"Записывается 'root' пароль....",
-/* TR_SETTING_SETUP_PASSWORD */
-"БУДЕТ УДАЛЁН",
-/* TR_SETUP_FINISHED */
-"Установка окончена.  Нажмите Ok.",
-/* TR_SETUP_NOT_COMPLETE */
-"Первоначальная установка не была завершена полностью.  Необходимо убедиться, что настройка полностью завершена выполнив команду setup ещё раз в shell оболочке.",
-/* TR_SETUP_PASSWORD */
-"БУДЕТ УДАЛЁН",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Задать дополнительные параметры модуля",
-/* TR_SINGLE_GREEN */
-"Ваши настройки задаются для одного GREEN интерфейса.",
-/* TR_SKIP */
-"Пропустить",
-/* TR_START_ADDRESS */
-"Начальный адрес:",
-/* TR_START_ADDRESS_CR */
-"Начальный адрес\n",
-/* TR_STATIC */
-"Статический",
-/* TR_SUGGEST_IO */
-"(Предлагаемый %x)",
-/* TR_SUGGEST_IRQ */
-"(Предлагаемый %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"Модуль этого драйвера уже установлен.",
-/* TR_TIMEZONE */
-"Часовой пояс",
-/* TR_TIMEZONE_LONG */
-"Укажите свою временную зону из списка ниже.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"Не могу открыть CDROM.",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Не удалось распаковать модули.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Не удалось найти какие-либо дополнительные драйверы.",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Не удалось найти ISDN карты на этом компьютере. Возможно стоит указать дополнительные параметры, если у вас карта типа ISA или имеет особые настройки.",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"Не удаётся инициализировать ISDN.",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Не удалось установить файлы.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Не удалось установить языковые пакеты.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"Не удалось установить GRUB.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Не удалось подгрузить модули драйверов.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Не удалось создать файловую систему для boot.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Не удалось создать файловую систему для логов.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Не удалось создать корневую файловую систему.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Не удалось создать swap.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Не удалось создать симлинк /dev/harddisk.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Не удалось создать симлинк /dev/harddisk1.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Не удалось создать симлинк /dev/harddisk2.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Не удалось создать симлинк /dev/harddisk3.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Не удалось создать симлинк /dev/harddisk4.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Не удалось создать симлинк /dev/root.",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Не удалось смонтировать раздел boot.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Не удалось смонтировать раздел с логами.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Не удалось смонтировать раздел proc.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Не удалось смонтировать корневой раздел .",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Не удалось смонтировать раздел swap.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Не удалось открыть основной файл хостов.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Не удалось открыть файл настроек",
-/* TR_UNABLE_TO_PARTITION */
-"Не удалось разбить диск на разделы.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Не удаётся удалить временные загруженные файлы.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Не удалось задать имя хоста.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"Не удаётся смонтировать привод CDROM/floppy.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Не получается отмонтировать жёсткие диски.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Не могу записать в /etc/fstab",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Не могу записать в /etc/hostname",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Не могу записать в /etc/hosts.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Не могу записать в /etc/hosts.allow.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Не могу записать в /etc/hosts.deny.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Не могу записать в %s/ethernet/settings.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Не могу записать в %s/main/hostname.conf",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Не могу записать в %s/main/settings.",
-/* TR_UNCLAIMED_DRIVER */
-"Обнаружена невостребованная сетевая карта типа:\n%s\n\nМожно ей назначить:",
-/* TR_UNKNOWN */
-"НЕИЗВЕСТНО",
-/* TR_UNSET */
-"НЕЗАДАНО",
-/* TR_USB_KEY_VFAT_ERR */
-"Неправильный USB носитель (не найден раздел vfat).",
-/* TR_US_NI1 */
-"Использовать NI1",
-/* TR_WARNING */
-"ВНИМАНИЕ",
-/* TR_WARNING_LONG */
-"Если изменить этот IP адрес, и в данный момент Вы подключены удалённо, то естественным образм Ваше соединение с %s будет потеряно. Придётся переподключиться к НОВОМУ IP. Эта процедура довольно рискована, есть у Вас нет возможности физического доступа к машине, на случай если что-то пойдёт не так.",
-/* TR_WELCOME */
-"Добро пожаловать в мастер настройки %s . Отмена установки на любом этапе приведёт к перезагрузке.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Ваша конфигурация настроена на один GREEN интерфейс, который уже оснащён драйвером.",
-/* TR_YES */
-"Да",
-/* TR_NO */
-"Нет",
-/* TR_AS */
-"как",
-/* TR_IGNORE */
-"Игнорировать",
-/* TR_PPP_DIALUP */
-"PPP DIALUP (PPPoE, модем, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"Запуск DHCP-server ...",
-/* TR_DHCP_STOPSERVER */
-"Остановка DHCP-server ...",
-/* TR_LICENSE_ACCEPT */
-"Я принимаю эту лицензию.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"Лицензия не принята. Выход!",
-/* TR_EXT2FS_DESCR */
-"Ext2 - Файловая система без журналирования (Рекомендуется для флеш-носителей)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - Файловая система с журналированием",
-/* TR_EXT4FS_DESCR */
-"Ext4 - Файловая система с журналированием",
-/* TR_REISERFS_DESCR */
-"ReiserFS - Файловая система с журналированием",
-/* TR_NO_LOCAL_SOURCE */
-"Локальный источник не найден. Начинаю загрузку.",
-/* TR_DOWNLOADING_ISO */
-"Загружается установочный образ ...",
-/* TR_DOWNLOAD_ERROR */
-"Во время загрузки произошла ошибка!",
-/* TR_DHCP_FORCE_MTU */
-"Форсировать DHCP mtu:",
-/* TR_IDENTIFY */
-"Identify",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Selected port should blink now ...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"Function is not supported by this port.",
-};
diff --git a/langs/tr/install/lang_tr.c b/langs/tr/install/lang_tr.c
deleted file mode 100644 (file)
index 814949a..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * Turkish (tr) Data File
- *
- * This file is part of the IPFire.
- * 
- * IPCop is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * IPCop 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with IPCop; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- * 
- * (c) IPFire Team  <info@ipfire.org>
- *
- * based on work of SmoothWall and IPCop
- *
- * (c) The SmoothWall Team
- *  
- */
-#include "libsmooth.h"
-
-char *tr_tr[] = {
-
-/* TR_ISDN */
-"ISDN",
-/* TR_ERROR_PROBING_ISDN */
-"ISDN aygıtları taramak için açılamıyor.",
-/* TR_PROBING_ISDN */
-"Tara ve ISDN aygıtlarını yapılandır.",
-/* TR_MISSING_GREEN_IP */
-"Yeşil IP yok!",
-/* TR_CHOOSE_FILESYSTEM */
-"Lütfen dosya sistemini seçin:",
-/* TR_NOT_ENOUGH_INTERFACES */
-"Seçiminize göre yeterli ağ kartı yok.\n\nGerekli: %d - Mevcut: %d\n",
-/* TR_INTERFACE_CHANGE */
-"Değiştirmek istediğiniz ara birimi seçiniz.\n\n",
-/* TR_NETCARD_COLOR */
-"Atanan Kartlar",
-/* TR_REMOVE */
-"Kaldır",
-/* TR_MISSING_DNS */
-"Eksik DNS.\n",
-/* TR_MISSING_DEFAULT */
-"Varsayılan Ağ Geçidi Eksik.\n",
-/* TR_JOURNAL_EXT3 */
-"Ext3 için günlük oluşturuluyor...",
-/* TR_CHOOSE_NETCARD */
-"Aşağıdan şu ara birim için bir ağ kartı seçin - %s",
-/* TR_NETCARDMENU2 */
-"Genişletilmiş Ağ Listesi",
-/* TR_ERROR_INTERFACES */
-"Sisteminizde hiç boş ara birim bulunmamaktadır.",
-/* TR_REMOVE_CARD */
-"Ağ kartı için tahsis edilenler silinsin mi? - %s",
-/* TR_JOURNAL_ERROR */
-"Günlük oluşturulamadı son çare olarak ext2 kullanılacak.",
-/* TR_FILESYSTEM */
-"Dosya Sistemini Seçin",
-/* TR_ADDRESS_SETTINGS */
-"Adres ayarları",
-/* TR_ADMIN_PASSWORD */
-"'admin' parolası",
-/* TR_AGAIN_PROMPT */
-"Tekrar:",
-/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */
-"Tüm kartalar başarılı bir şekilde atandı.",
-/* TR_AUTODETECT */
-"* OTOMATİK ALGILAMA *",
-/* TR_BUILDING_INITRD */
-"Ramdisk oluşturuluyor...",
-/* TR_CANCEL */
-"İptal",
-/* TR_CARD_ASSIGNMENT */
-"Kart ataması",
-/* TR_CHECKING */
-"URL kontrol ediliyor...",
-/* TR_CHECKING_FOR */
-"Kontrol: %s",
-/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */
-"Bu bilgisayarda yüklü ISDN kartını seçin.",
-/* TR_CHOOSE_THE_ISDN_PROTOCOL */
-"İstediğiniz ISDN iletişim kuralını seçin.",
-/* TR_CONFIGURE_DHCP */
-"DHCP ayar bilgilerini girerek DHCP sunucusunu yapılandırın.",
-/* TR_CONFIGURE_NETWORKING */
-"Ağ yapılandırması",
-/* TR_CONFIGURE_NETWORKING_LONG */
-"Şimdi öncelikle YEŞİL ara birim için doğru sürücüyü yükleyerek ağınızı yapılandırmanız gerekir. Bir ağ kartı yüklemek için otomatik tarama yapabilir ya da listeden doğru sürücüyü seçebilirsiniz. Eğer birden fazla ağ kartınız varsa yapılandırmadan sonra da bu ağ kartlarının yüklenebileceğini unutmayın. Ayrıca birden fazla aynı türde ağ kartınız varsa hangi kartı YEŞİL ara birime atadığınızı unutmayın. Her kart için özel modül parametreleri eklemeniz gerekebilir. Eğer YEŞİL ara birimi yapılandırırken tüm ağ kartları aktifse tüm türdeki kartlar için parametreleri girmeniz gerekir.",
-/* TR_CONFIGURE_NETWORK_DRIVERS */
-"Ağ sürücüleri ve hangi ara birim için hangi kartların atanacağını yapılandırın. Mevcut yapılandırma:\n\n",
-/* TR_CONFIGURE_THE_CDROM */
-"Uygun GÇ ve/veya IRQ seçerek CDROM yapılandır.",
-/* TR_CONGRATULATIONS */
-"Tebrikler!",
-/* TR_CONGRATULATIONS_LONG */
-"%s başarıyla yüklendi. Şimdi bilgisayarınızdaki cdyi çıkartın. Kurulum; ISDN, ağ kartları, sistem parolalarını yapılandırabileceğiniz programı çalıştıracaktır. Kurulum tamamlandıktan sonra bir internet tarayıcısı açıp adres satırına https://%s:444 (ya da %s sistem adınız) yazıp çevirmeli ağ (gerekliyse) ve uzaktan erişim yapılandırmalarınızı yapabilirsiniz.",
-/* TR_CONTINUE_NO_SWAP */
-"Sabit diskiniz çok küçük, ancak küçük bir takas alanı ile devam edebilirsiniz. (Dikkatli kullanın).",
-/* TR_CURRENT_CONFIG */
-"Geçerli yapılandırma: %s%s",
-/* TR_DEFAULT_GATEWAY */
-"Varsayılan Ağ Geçidi:",
-/* TR_DEFAULT_GATEWAY_CR */
-"Varsayılan Ağ Geçidi\n",
-/* TR_DEFAULT_LEASE */
-"Varsayılan kira (dakika):",
-/* TR_DEFAULT_LEASE_CR */
-"Varsayılan kira süresi\n",
-/* TR_DETECTED */
-"Algılanan: %s",
-/* TR_DHCP_HOSTNAME */
-"DHCP Ana bilgisayar adı:",
-/* TR_DHCP_HOSTNAME_CR */
-"DHCP Ana bilgisayar adı\n",
-/* TR_DHCP_SERVER_CONFIGURATION */
-"DHCP sunucu yapılandırması",
-/* TR_DISABLED */
-"Devre Dışı",
-/* TR_DISABLE_ISDN */
-"ISDN Devre Dışı",
-/* TR_DISK_TOO_SMALL */
-"Sabit diskiniz çok küçük.",
-/* TR_DNS_AND_GATEWAY_SETTINGS */
-"DNS ve Ağ Geçidi ayarları",
-/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"DNS ve ağ geçidi bilgilerini girin. Bu ayarlar sadece KIRMIZI ara birim adres ayarlarında Statik seçenği seçilmişse kullanılır. Eğer KIRMIZI ara birim adres ayarlarında DHCP seçeneğini seçtiyseniz bu alanı boş bırakabilirsiniz.",
-/* TR_DNS_GATEWAY_WITH_GREEN */
-"Yapılandırmanız KIRMIZI ara birim için ethernet adaptörünü kullanamaz. DNS ve Çevirmeli ağ kullanıcıları için ağ geçidi bilgisi çevirmeli ağda otomatik olarak yapılandırılır.",
-/* TR_DOMAINNAME */
-"Alan adı",
-/* TR_DOMAINNAME_CANNOT_BE_EMPTY */
-"Alan adı boş olamaz.",
-/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */
-"Alan adı boşluk içeremez.",
-/* TR_DOMAINNAME_NOT_VALID_CHARS */
-"Alan adı sadece harfler, sayılar, tire ve noktadan oluşturulabilir.",
-/* TR_DOMAIN_NAME_SUFFIX */
-"Alan adı son eki:",
-/* TR_DOMAIN_NAME_SUFFIX_CR */
-"Alan adı son eki\n",
-/* TR_DONE */
-"Bitti",
-/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */
-"\nBu ayarları değiştirmek istiyor musunuz?",
-/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */
-"Sürücüler ve kart atamaları",
-/* TR_ENABLED */
-"Aktif",
-/* TR_ENABLE_ISDN */
-"ISDN aktif",
-/* TR_END_ADDRESS */
-"Bitiş adresi:",
-/* TR_END_ADDRESS_CR */
-"Bitiş adresi\n",
-/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
-"Bazı ISDN kartları (özellikle ISA olanlar) IRQ ve GÇ adres bilgilerini ayarlamak için ek modül parametrelerine ihtiyaç duyar.Böyle bir ISDN kartınız varsa burada bu ek parametreleri girin. Örneğin: \"io = 0x280 irq = 9 \". Bunlar kart algılama sırasında kullanılacaktır.",
-/* TR_ENTER_ADMIN_PASSWORD */
-"%s 'admin' kullanıcı parolasını girin. Bu, %s web yönetimi sayfalarının kayıtlarına erişebilen kullanıcıdır.",
-/* TR_ENTER_DOMAINNAME */
-"Alan adını girin",
-/* TR_ENTER_HOSTNAME */
-"Makinenin ana bilgisayar adını girin.",
-/* TR_ENTER_IP_ADDRESS_INFO */
-"IP adres bilgilerini girin.",
-/* TR_ENTER_NETWORK_DRIVER */
-"Otomatik olarak bir ağ kartı algılanamadı. Ağ kartı için sürücü ve isteğe bağlı olan parametreleri girin.",
-/* TR_ENTER_ROOT_PASSWORD */
-"IPFire 'root' kullanıcı parolasını girin. Komut satırı erişimi için bu kullanıcı ile oturum açın.",
-/* TR_ENTER_SETUP_PASSWORD */
-"KALDIRILACAK",
-/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */
-"%s ara birimi için IP adres bilgilerini girin.",
-/* TR_ENTER_THE_LOCAL_MSN */
-"Yerel telefon numarasını girin (MSN/EAZ).",
-/* TR_ENTER_URL */
-"IPFire-<version>.tgz ve images/scsidrv-<version>.img dosyaları için URL adresini girin. UYARI: DNS mevcut deği! Bu sadece http://X.X.X.X/<directory> olmalıdır.",
-/* TR_ERROR */
-"Hata",
-/* TR_ERROR_PROBING_CDROM */
-"CD-ROM sürücüsü bulunamadı.",
-/* TR_ERROR_WRITING_CONFIG */
-"Yapılandırma bilgilerini yazma hatası.",
-/* TR_EURO_EDSS1 */
-"Avrupa (EDSS1)",
-/* TR_EXTRACTING_MODULES */
-"Modüller açılıyor...",
-/* TR_FAILED_TO_FIND */
-"URL dosyası bulunamadı.",
-/* TR_FOUND_NIC */
-"%s makinenizde aşağıdaki NIC tespit edildi: %s",
-/* TR_GERMAN_1TR6 */
-"Alman 1TR6",
-/* TR_HELPLINE */
-"              <Tab>/<Alt-Tab> öğeler arasında geçiş   |  <Space> seçim",
-/* TR_HOSTNAME */
-"Ana bilgisayar adı",
-/* TR_HOSTNAME_CANNOT_BE_EMPTY */
-"Ana bilgisayar adı boş olamaz.",
-/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */
-"Ana bilgisayar adı boşluk içeremez.",
-/* TR_HOSTNAME_NOT_VALID_CHARS */
-"Ana bilgisayar adı sadece harf, rakam ve tire içerebilir.",
-/* TR_INITIALISING_ISDN */
-"ISDN başlatılıyor...",
-/* TR_INSERT_CDROM */
-"Lütfen CD_ROM sürücüsüne %s CDsi yerleştirin.",
-/* TR_INSERT_FLOPPY */
-"Lütfen disket sürücüsüne %s sürücü disketini yerleştirin.",
-/* TR_INSTALLATION_CANCELED */
-"Kurulum iptal edildi.",
-/* TR_INSTALLING_FILES */
-"Dosyalar yükleniyor...",
-/* TR_INSTALLING_GRUB */
-"GRUB yükleniyor...",
-/* TR_INSTALLING_LANG_CACHE */
-"Dil dosyası yükleniyor...",
-/* TR_INTERFACE */
-"Ara birim - %s",
-/* TR_INTERFACE_FAILED_TO_COME_UP */
-"Ara birim yükseltmesi başarısız oldu.",
-/* TR_INVALID_FIELDS */
-"Aşağıdaki alan geçersiz:\n\n",
-/* TR_INVALID_IO */
-"Girilen GÇ bağlantı noktası detayları geçersiz. ",
-/* TR_INVALID_IRQ */
-"Girilen IRQ ayrıntıları geçersiz.",
-/* TR_IP_ADDRESS_CR */
-"IP adresi\n",
-/* TR_IP_ADDRESS_PROMPT */
-"IP adresi:",
-/* TR_ISDN_CARD */
-"ISDN kartı",
-/* TR_ISDN_CARD_NOT_DETECTED */
-"ISDN kartı algılanamdı. Kart bir ISA türü veya özel gereksinimleri olan bir kartsa ek modül parametreleri belirtmeniz gerekebilir.",
-/* TR_ISDN_CARD_SELECTION */
-"ISDN kart seçimi",
-/* TR_ISDN_CONFIGURATION */
-"ISDN Yapılandırması",
-/* TR_ISDN_CONFIGURATION_MENU */
-"ISDN yapılandırma listesi",
-/* TR_ISDN_NOT_SETUP */
-"ISDN kurulamadı. Bazı ürünleri seçmediniz.",
-/* TR_ISDN_NOT_YET_CONFIGURED */
-"ISDN henüz yapılandırılmamış. Yapılandırmak istediğiniz öğeyi seçin.",
-/* TR_ISDN_PROTOCOL_SELECTION */
-"ISDN kural seçimi",
-/* TR_ISDN_STATUS */
-"ISDN şu anda %s.\n\n   Kural: %s\n   Kart: %s\n   Yerel telefon numarası: %s\n\nYeniden yapılandırmanız için istediğiniz öğeyi seçin ya da geçerli ayarları kullanmayı tercih edin.",
-/* TR_KEYBOARD_MAPPING */
-"Klavye haritası",
-/* TR_KEYBOARD_MAPPING_LONG */
-"Aşağıdaki listeden kullandığınız klavye türünü seçin.",
-/* TR_LEASED_LINE */
-"Kiralık hat",
-/* TR_LOADING_MODULE */
-"Modül yükleniyor...",
-/* TR_LOADING_PCMCIA */
-"PCMCIA modülleri yükleniyor...",
-/* TR_LOOKING_FOR_NIC */
-"Arayan: %s",
-/* TR_MAKING_BOOT_FILESYSTEM */
-"Önyükleme dosya sistemi yapılandırılıyor...",
-/* TR_MAKING_LOG_FILESYSTEM */
-"Günlük dosya sistemi yapılandırılıyor...",
-/* TR_MAKING_ROOT_FILESYSTEM */
-"Root dosya sistemi yapılandırılıyor...",
-/* TR_MAKING_SWAPSPACE */
-"Takas alanı yapılandırılıyor...",
-/* TR_MANUAL */
-"* EL İLE *",
-/* TR_MAX_LEASE */
-"En fazla kira (dak):",
-/* TR_MAX_LEASE_CR */
-"En fazla kira süresi\n",
-/* TR_MISSING_BLUE_IP */
-"MAVİ ara birimdeki IP bilgileri eksik.",
-/* TR_MISSING_ORANGE_IP */
-"TURUNCU ara birimdeki IP bilgileri eksik.",
-/* TR_MISSING_RED_IP */
-"KIRMIZI ara birimdeki IP bilgileri eksik.",
-/* TR_MODULE_NAME_CANNOT_BE_BLANK */
-"Modül adı boş olamaz.",
-/* TR_MODULE_PARAMETERS */
-"Size gereken sürücü için modül adı ve parametrelerini girin.",
-/* TR_MOUNTING_BOOT_FILESYSTEM */
-"Önyükleme dosya sistemi bağlanıyor...",
-/* TR_MOUNTING_LOG_FILESYSTEM */
-"Günlük dosya sistemi bağlanıyor...",
-/* TR_MOUNTING_ROOT_FILESYSTEM */
-"Root dosya sistemi bağlanıyor...",
-/* TR_MOUNTING_SWAP_PARTITION */
-"Takas bölümü bağlanıyor...",
-/* TR_MSN_CONFIGURATION */
-"Yerel telefon numarası (MSN/EAZ)",
-/* TR_NETMASK_PROMPT */
-"Ağ maskesi:",
-/* TR_NETWORKING */
-"Ağ",
-/* TR_NETWORK_ADDRESS_CR */
-"Ağ adresi\n",
-/* TR_NETWORK_ADDRESS_PROMPT */
-"Ağ adresi:",
-/* TR_NETWORK_CONFIGURATION_MENU */
-"Ağ yapılandırma listesi",
-/* TR_NETWORK_CONFIGURATION_TYPE */
-"Ağ yapılandırma türü",
-/* TR_NETWORK_CONFIGURATION_TYPE_LONG */
-"%s için ağ yapılandırmasını seçin. Aşağıdaki yapılandırma türleri ethernet kartına atanmış ara birimleri listeler. Eğer bu ayarları değiştirirseniz ağın yeniden başlatılması gerekir ve yeniden ağ sürücülerinin atanması gerekir.",
-/* TR_NETWORK_MASK_CR */
-"Ağ maskesi\n",
-/* TR_NETWORK_SETUP_FAILED */
-"Ağ kurulumu başarısız oldu.",
-/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */
-"Yeterince kart tahsis edilemedi.",
-/* TR_NO_BLUE_INTERFACE */
-"Hiçbir MAVİ ara birim atanmamış.",
-/* TR_NO_CDROM */
-"CD-ROM bulunamadı.",
-/* TR_NO_GREEN_INTERFACE */
-"Hiçbir YEŞİL ara birim atanmamış.",
-/* TR_NO_HARDDISK */
-"Sabit disk bulunamadı.",
-/* TR_NO_IPCOP_TARBALL_FOUND */
-"Web sunucuda hiçbir ipfire arşivi bulunamadı.",
-/* TR_NO_ORANGE_INTERFACE */
-"Hiçbir TURUNCU ara birim atanmamış.",
-/* TR_NO_RED_INTERFACE */
-"Hiçbir KIRMIZI ara birim atanmamış.",
-/* TR_NO_SCSI_IMAGE_FOUND */
-"Web sunucuda hiçbir SCSI kalıbı bulunamadı.",
-/* TR_NO_UNALLOCATED_CARDS */
-"Daha fazla ayrılmamış kart bulunmaktadır. Otamatik olarak daha fazla kartı aratabilir veya listeden bir sürücü seçebilirsiniz.",
-/* TR_OK */
-"Tamam",
-/* TR_PARTITIONING_DISK */
-"Disk bölümleniyor...",
-/* TR_PASSWORDS_DO_NOT_MATCH */
-"Parolalar eşeleşmiyor.",
-/* TR_PASSWORD_CANNOT_BE_BLANK */
-"Parola boş olamaz.",
-/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */
-"Parla boşluk içeremez.",
-/* TR_PASSWORD_PROMPT */
-"Parola:",
-/* TR_PHONENUMBER_CANNOT_BE_EMPTY */
-"Telefon numarası boş olamaz.",
-/* TR_PREPARE_HARDDISK */
-"Sabit disk kurulum programı %s üzerindeki sabit diski hazırlayacak. İlk olarak diskiniz bölümlendirilir ve daha sonra bu bölüme dosya sistemleri oluşturulur.\n\nDİSKTEKİ TÜM VERİLER SİLİNECEKTİR. Kabul ediyor musunuz?",
-/* TR_PRESS_OK_TO_REBOOT */
-"Yeniden Başlat",
-/* TR_PRIMARY_DNS */
-"Birincil DNS:",
-/* TR_PRIMARY_DNS_CR */
-"Birincil DNS\n",
-/* TR_PROBE */
-"Araştır",
-/* TR_PROBE_FAILED */
-"Otomatik algılama başarısız oldu.",
-/* TR_PROBING_HARDWARE */
-"Donanım algılanıyor...",
-/* TR_PROBING_FOR_NICS */
-"Ağ kartları algılanıyor...",
-/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */
-"%s 'admin' kullanıcı parolası ayarları sorunlu.",
-/* TR_PROBLEM_SETTING_ROOT_PASSWORD */
-"'root' parola ayarları sorunlu.",
-/* TR_PROBLEM_SETTING_SETUP_PASSWORD */
-"KALDIRILACAK",
-/* TR_PROTOCOL_COUNTRY */
-"Kural/Ülke",
-/* TR_PULLING_NETWORK_UP */
-"Ağ başlatılıyor...",
-/* TR_PUSHING_NETWORK_DOWN */
-"Ağ duruduruluyor...",
-/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */
-"Düşmeyen ağ bitirliyor...",
-/* TR_QUIT */
-"Çık",
-/* TR_RED_IN_USE */
-"ISDN (ya da herhangi bir harici bağlantı) şu anda kullanımda. Kırmızı arabirim aktifken ISDN seçeneğini yapılandıramazsınız.",
-/* TR_RESTART_REQUIRED */
-"\n\nYapılandırma tamamlandığında ağı yeniden başlatmanız gerekir.",
-/* TR_RESTORE */
-"Geri Yükle",
-/* TR_RESTORE_CONFIGURATION */
-"Eğer %s sistem yapılandırması ile ilgili bir disketiniz varsa disketinizi disket sürücüsüne yerleştirin ve Geri Yükle düğmesine basın.",
-/* TR_ROOT_PASSWORD */
-"'root' parolası",
-/* TR_SECONDARY_DNS */
-"İkincil DNS:",
-/* TR_SECONDARY_DNS_CR */
-"İkincil DNS\n",
-/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */
-"Birincil DNS olmadan ikincil DNS belirtilmiş.",
-/* TR_SECTION_MENU */
-"Bölüm listesi",
-/* TR_SELECT */
-"Seç",
-/* TR_SELECT_CDROM_TYPE */
-"CD-ROM türünü seç",
-/* TR_SELECT_CDROM_TYPE_LONG */
-"Bu makinede CD-ROM bulunamadı. %s ile CD-ROM sürücüsüne erişilebilmesi için kullanmak istediğiniz sürücüyü aşağıdan seçin.",
-/* TR_SELECT_INSTALLATION_MEDIA */
-"Kurulum ortamını seçin",
-/* TR_SELECT_INSTALLATION_MEDIA_LONG */
-"%s birden fazla kaynaktan kurulabilir. En basit makineler de CD-ROM sürücüsü kullanmaktadır. Eğer bilgisayarınızda bir sürücü yoksa HTTP veya FTP üzerinden ayrıca kurulum dosyaları olan başka bir LAN üzerindeki makineden kurulum yapabilirsiniz.",
-/* TR_SELECT_NETWORK_DRIVER */
-"Ağ sürücüsünü seçin",
-/* TR_SELECT_NETWORK_DRIVER_LONG */
-"Bu makinede kurulu olan kart için bir ağ sürücüsü seçin. EL İLE seçeneğini seçerseniz özel gereksinimleri olan bir kart için (ISA kartlar gibi) sürücü modül adı ve parametrelerini yazmanız istenecektir",
-/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */
-"Yeniden yapılandırmak istediğiniz ara birimi seçin.",
-/* TR_SELECT_THE_ITEM */
-"Yapılandırmak istediğiniz nesneyi seçin.",
-/* TR_SETTING_ADMIN_PASSWORD */
-"%s 'admin' kullanıcı parolası ayarlanıyor...",
-/* TR_SETTING_ROOT_PASSWORD */
-"'root' parolası ayarlanıyor....",
-/* TR_SETTING_SETUP_PASSWORD */
-"KALDIRILACAK",
-/* TR_SETUP_FINISHED */
-"Kurulum tamamlandı. Tamam seçneği ile ilerleyin.",
-/* TR_SETUP_NOT_COMPLETE */
-"Başlangıç kurulumu tamamlanamadı. Şimdi kurulumu tekrar çalıştırarak ayarlarınızın düzgün yapılmış olduğundan emin olun.",
-/* TR_SETUP_PASSWORD */
-"KALDIRILACAK",
-/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */
-"Ek modül parametreleri ayarlayın",
-/* TR_SINGLE_GREEN */
-"Sadece YEŞİL ara birim için ayarlarınızı yapılandırın.",
-/* TR_SKIP */
-"Atla",
-/* TR_START_ADDRESS */
-"Başlangıç adresi:",
-/* TR_START_ADDRESS_CR */
-"Başlangıç adresi\n",
-/* TR_STATIC */
-"Statik",
-/* TR_SUGGEST_IO */
-"(öneri %x)",
-/* TR_SUGGEST_IRQ */
-"(öneri %d)",
-/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */
-"Bu sürücü modülü zaten yüklü.",
-/* TR_TIMEZONE */
-"Zaman dilimi",
-/* TR_TIMEZONE_LONG */
-"Aşağıdaki listeden bulunduğunuz zaman dilimini seçin.",
-/* TR_UNABLE_TO_EJECT_CDROM */
-"CD-ROM çıkarmak için açılamıyor.",
-/* TR_UNABLE_TO_EXTRACT_MODULES */
-"Modüller ayıklanamıyor.",
-/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */
-"Herhangi bir ek sürücü bulmak için açılamıyor.",
-/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */
-"Bu bilgisayar da bir ISDN kartı bulunamadı. Kart bir ISA türüdür veya özel gereksinimleri olan bir kart olabilir. Bu durumda ek modül parametreleri belirtmeniz gerekebilir.",
-/* TR_UNABLE_TO_INITIALISE_ISDN */
-"ISDN başlatmak için açılamıyor.",
-/* TR_UNABLE_TO_INSTALL_FILES */
-"Dosyaları kurmak için açılamıyor.",
-/* TR_UNABLE_TO_INSTALL_LANG_CACHE */
-"Dil dosyalarını kurmak için açılamıyor.",
-/* TR_UNABLE_TO_INSTALL_GRUB */
-"GRUB kurulamıyor.",
-/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */
-"Sürücü modülü yüklenemiyor.",
-/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */
-"Ön yükleme dosya sistemi oluşturulamıyor.",
-/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */
-"Günlük dosya sistemi oluşturulamıyor.",
-/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */
-"Root dosya sistemi oluşturulamıyor.",
-/* TR_UNABLE_TO_MAKE_SWAPSPACE */
-"Takas alanı oluşturulamıyor.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */
-"Sembolik bağı oluşturulamıyor: /dev/harddisk.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */
-"Sembolik bağı oluşturulamıyor: /dev/harddisk1.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */
-"Sembolik bağı oluşturulamıyor: /dev/harddisk2.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */
-"Sembolik bağı oluşturulamıyor: /dev/harddisk3.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */
-"Sembolik bağı oluşturulamıyor: /dev/harddisk4.",
-/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */
-"Sembolik bağı oluşturulamıyor: /dev/root.",
-/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */
-"Ön yükleme dosya sistemi bağlanamadı.",
-/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */
-"Günlük dosya sistemi bağlanamadı.",
-/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */
-"Proc dosya sistemi bağlanamadı.",
-/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */
-"Root dosya sistemi bağlanamadı.",
-/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */
-"Takas bölümü bağlanamadı.",
-/* TR_UNABLE_TO_OPEN_HOSTS_FILE */
-"Ana bilgisayar dosyası açılamadı.",
-/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */
-"Ayarlar dosyası açılamadı.",
-/* TR_UNABLE_TO_PARTITION */
-"Dsik bölümleri açılamadı.",
-/* TR_UNABLE_TO_REMOVE_TEMP_FILES */
-"Geçici olarak indirilen dosyalar kaldırılamıyor.",
-/* TR_UNABLE_TO_SET_HOSTNAME */
-"Ana bilgisayar adı ayarlamak için açılamıyor.",
-/* TR_UNABLE_TO_UNMOUNT_CDROM */
-"CDROM/floppydisk ayrılamıyor.",
-/* TR_UNABLE_TO_UNMOUNT_HARDDISK */
-"Sabit disk ayrılamıyor.",
-/* TR_UNABLE_TO_WRITE_ETC_FSTAB */
-"Yazmak için açılamıyor: /etc/fstab",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */
-"Yazmak için açılamıyor: /etc/hostname",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS */
-"Yazmak için açılamıyor: /etc/hosts.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */
-"Yazmak için açılamıyor: /etc/hosts.allow.",
-/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */
-"Yazmak için açılamıyor: /etc/hosts.deny.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */
-"Yazmak için açılamıyor: %s/ethernet/settings.",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */
-"Yazmak için açılamıyor: %s/main/hostname.conf",
-/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */
-"Yazmak için açılamıyor: %s/main/settings.",
-/* TR_UNCLAIMED_DRIVER */
-"Bu türe ait sahipsiz bir ethernet kartı yok:\n%s\n\nBunu atayabilirsiniz:",
-/* TR_UNKNOWN */
-"BİLİNMEYEN",
-/* TR_UNSET */
-"KURULMAMIŞ",
-/* TR_USB_KEY_VFAT_ERR */
-"Bu USB anahtarı geçersiz (vfat bölümü bulunamadı).",
-/* TR_US_NI1 */
-"US NI1",
-/* TR_WARNING */
-"UYARI",
-/* TR_WARNING_LONG */
-"Bu IP adresini değiştiriseniz %s makinesi ile uzak oturum bağlantısı kopar ve yeniden IP adresi girmeniz gerekir. Bu riskli bir işlemdir. Bu işlem sırasında bir şeyler ters giderse düzeltmek için makineye fiziksel erişiminiz olmalıdır. Makineye fiziksel erişiminiz varsa bu işlemi gerçekleştirin.",
-/* TR_WELCOME */
-"%s kurulum programına hoş geldiniz. Sonraki ekranların herhangi birinde İptal seçeneğini seçtiğinizde bilgisayar yeniden başlatılacaktır.",
-/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
-"Zaten atanmış bir sürücünüz var. Yapılandırma sadece YEŞİL ara birim için yapılır.",
-/* TR_YES */
-"Evet",
-/* TR_NO */
-"Hayır",
-/* TR_AS */
-"-",
-/* TR_IGNORE */
-"Yok say",
-/* TR_PPP_DIALUP */
-"PPP ÇEVİRMELİ AĞ (PPPoE, modem, ATM ...)",
-/* TR_DHCP */
-"DHCP",
-/* TR_DHCP_STARTSERVER */
-"DHCP-sunucusu başlatılıyor ...",
-/* TR_DHCP_STOPSERVER */
-"DHCP-sunucusu durduruluyor ...",
-/* TR_LICENSE_ACCEPT */
-"Bu lisansı kabul ediyorum.",
-/* TR_LICENSE_NOT_ACCEPTED */
-"Lisans kabul edilmedi. Çık!",
-/* TR_EXT2FS_DESCR */
-"Ext2 - Günlük olmadan dosya sistemi (flash sürücüler için önerilen)",
-/* TR_EXT3FS_DESCR */
-"Ext3 - Günlük ile dosya sistemi",
-/* TR_EXT4FS_DESCR */
-"Ext4 - Günlük ile dosya sistemi",
-/* TR_REISERFS_DESCR */
-"ReiserFS - Günlük ile dosya sistemi",
-/* TR_NO_LOCAL_SOURCE */
-"Yerel kaynak medya bulunamadı. İndirme başlatılıyor​​.",
-/* TR_DOWNLOADING_ISO */
-"Kurulum kalıbı indiriliyor ...",
-/* TR_DOWNLOAD_ERROR */
-"İndirirken hata!",
-/* TR_DHCP_FORCE_MTU */
-"DHCP mtu zorla:",
-/* TR_IDENTIFY */
-"Belirle",
-/* TR_IDENTIFY_SHOULD_BLINK */
-"Seçilen bağlantı noktasının şimdi yanıp sönmesi gerekir...",
-/* TR_IDENTIFY_NOT_SUPPORTED */
-"İşlev bu bağlantı noktası tarafından desteklenmiyor.",
-};
index c89ff545a99b6e1a6952f219b19abd8ffecbe4d6..862c94432e56282c592dc3ba6b4ce42c8bc2af92 100644 (file)
--- a/lfs/bash
+++ b/lfs/bash
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.2
+VER        = 4.3
 
 THISAPP    = bash-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -35,20 +35,15 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --bindir=/bin \
-    --without-bash-malloc --with-installed-readline \
-    --disable-nls
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+  CONFIGURE_OPTIONS = --prefix=/usr --bindir=/bin \
+    --with-installed-readline
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
-  EXTRA_CONFIG = --prefix=/tools --without-bash-malloc \
-    --disable-nls
-  EXTRA_MAKE = 
-  EXTRA_INSTALL = 
+  CONFIGURE_OPTIONS = --prefix=/tools
 endif
 
-EXTRA_CONFIG += ac_cv_func_working_mktime=yes
+CONFIGURE_OPTIONS += \
+       --without-bash-malloc
 
 ###############################################################################
 # Top-level Rules
@@ -58,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5         = 00bfa16d58e034e3c2aa27f390390d30
+$(DL_FILE)_MD5         = 81348932d5da294953e15d4814c74dd1
 
 install : $(TARGET)
 
@@ -87,24 +82,31 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zaxf $(DIR_DL)/$(DL_FILE)
 
-       for i in $$(seq 1 51); do \
-               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash32-$$(printf "%03d" "$${i}") || exit 1; \
+       sed -e "s/filename, RTLD_LAZY/filename, RTLD_NOW/" \
+               -i $(DIR_APP)/builtins/enable.def
+
+       for i in $$(seq 1 18); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash43-$$(printf "%03d" "$${i}") || exit 1; \
        done
 
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-paths-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-profile-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-3.2-ssh_source_bash.patch
-       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
-       cd $(DIR_APP) && make $(EXTRA_MAKE)
-       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+
+       cd $(DIR_APP) && ./configure $(CONFIGURE_OPTIONS)
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+
        ln -sf bash /bin/sh
+
 ifneq "$(ROOT)" ""
        -mkdir -p $(ROOT)/bin
        -mkdir -p $(ROOT)/usr/bin
        ln -sf bash /tools/bin/sh
        -ln -sf /tools/bin/bash $(ROOT)/bin/sh
 endif
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 5a85002bae545d35d6b3bb75e086505bcaaaf796..7a569a0caab93290c4827cd088f355b95571bc1e 100644 (file)
--- a/lfs/cdrom
+++ b/lfs/cdrom
@@ -78,7 +78,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        tar -x -C /tmp -f /$(SNAME).tar
        rm -f /$(SNAME).tar
        @mkdir /tmp/sys
-       cd /tmp && tar  cf /install/cdrom/$(SNAME)-$(VERSION).tlz $(TAR_OPTIONS) * && rm -rf *
+       cd /tmp && tar  cf /install/cdrom/distro.img $(TAR_OPTIONS) * && rm -rf *
 
        # Other files
        touch /install/cdrom/$(SNAME)-$(VERSION)-core$(CORE).media
@@ -95,7 +95,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        dd if=/dev/zero  bs=1k count=2            > /install/cdrom/boot/isolinux/boot.catalog
 ifneq "$(MACHINE_TYPE)" "arm"
        cp /boot/vmlinuz-$(KVER)-ipfire             /install/cdrom/boot/isolinux/vmlinuz
-       cp /install/images/initrd                   /install/cdrom/boot/isolinux/instroot
+       dracut --force -a "installer" --strip --xz /install/cdrom/boot/isolinux/instroot $(KVER)-ipfire
        cp $(DIR_SRC)/config/syslinux/boot.png      /install/cdrom/boot/isolinux/boot.png
        cp /usr/lib/memtest86+/memtest.bin          /install/cdrom/boot/isolinux/memtest
        cp /usr/share/ipfire-netboot/ipxe.lkrn      /install/cdrom/boot/isolinux/netboot
@@ -109,8 +109,8 @@ endif
        cd /install/cdrom && find -type f ! -name md5sum.txt | grep -v "./boot" | \
                                                xargs md5sum > md5sum.txt
 
-ifeq "$(MACHINE_TYPE)" "arm"
        mkdir -p /install/images
+ifeq "$(MACHINE_TYPE)" "arm"
        cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \
                . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso
 else
index d0f35c205a080e9dfbdcd3f0db00479d6f3fcf99..63d0a889823900ce3170771a354a9d53f5c53fb0 100644 (file)
 
 include Config
 
-VER        = 5.96
+VER        = 8.23
 
 THISAPP    = coreutils-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
@@ -35,17 +35,22 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --disable-nls
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+  CONFIGURE_OPTIONS = --prefix=/usr
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
-  EXTRA_CONFIG = --prefix=/tools --disable-nls
-  EXTRA_MAKE = 
-  EXTRA_INSTALL = 
+  CONFIGURE_OPTIONS = --prefix=/tools
 endif
 
-EXTRA_CONFIG += ac_cv_func_working_mktime=yes
+CONFIGURE_OPTIONS += \
+       --disable-selinux \
+       --enable-largefile \
+       --disable-rpath \
+       --enable-install-program=arch \
+       --enable-no-install-program=hostname,kill \
+       --with-tty-group \
+       gl_cv_func_mknod_works=yes
+
+CFLAGS += -fno-strict-aliasing
 
 ###############################################################################
 # Top-level Rules
@@ -55,7 +60,7 @@ objects =$(DL_FILE)
 
 $(DL_FILE)                      = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5                  = bf55d069d82128fd754a090ce8b5acff
+$(DL_FILE)_MD5                  = abed135279f87ad6762ce57ff6d89c41
 
 install : $(TARGET)
 
@@ -84,24 +89,12 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-rename-tee.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-futimes.patch
-ifeq "$(ROOT)" ""
-ifeq "$(MACHINE)" "i586"
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-uname-1.patch
-endif
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-suppress_uptime_kill_su-1.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-i18n-1.patch
-       cd $(DIR_APP) && chmod +x tests/sort/sort-mb-tests
-       cd $(DIR_APP) && sed -i 's/_LEN 6/_LEN 20/' src/who.c
-endif
-       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
-       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
-       #use hostname from inet-tools
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(CONFIGURE_OPTIONS)
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+
 ifeq "$(ROOT)" ""
-       rm /usr/bin/hostname
        mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
        mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} /bin
        mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
@@ -110,8 +103,7 @@ ifeq "$(ROOT)" ""
        ln -sf test /bin/[
        #ln -sf ../../bin/install /usr/bin
        dircolors -p > /etc/DIR_COLORS
-else
-       rm /tools/bin/hostname
 endif
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index aacf7474f69da3408d0a334c99a245d0615bd3ee..ec5ff8f339798bb806082770ec8c54bfa6dc8965 100644 (file)
 
 include Config
 
-VER        = 006
+VER        = 038
 
 THISAPP    = dracut-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 016052b57001789ec2acf89d382a82f5
+$(DL_FILE)_MD5 = 4487bd98000cc536c5c3839a2f112831
 
 install : $(TARGET)
 
@@ -69,40 +69,14 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_lzma.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_remove_cdrom_wait.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_add_run_dir.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_remove_scsi_wait.patch
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install sbindir=/sbin sysconfdir=/etc
 
-       cd $(DIR_APP) && cp -vf $(DIR_SRC)/src/dracut/switch_root.c .
+       rm -rf /usr/lib/dracut/modules.d/*{biosdevname,bootchart,dash,fips*,modsign,busybox,convertfs,network,ifcfg,url-lib,gensplash,cms,plymouth,btrfs,crypt*,dm,dmraid,dmsquash-live,livenet,lvm,multipath,qemu*,cifs,dasd*,fcoe*,iscsi,nbd,nfs,resume,ssh-client,zfcp*,systemd*,znet,securityfs,masterkey,selinux,usrmount,uefi-lib}
 
-       cd $(DIR_APP) && make $(MAKETUNING) WITH_SWITCH_ROOT=1
-       cd $(DIR_APP) && make install WITH_SWITCH_ROOT=1 \
-               sbindir=/sbin sysconfdir=/etc
+       cp -vf $(DIR_SRC)/config/dracut/dracut.conf /etc/dracut.conf
 
-       cp -vf $(DIR_SRC)/src/dracut/dracut.conf /etc/dracut.conf.d/
-
-       rm -rf /usr/share/dracut/modules.d/*{dash,fips,redhat-i18n,rpmversion,network,ifcfg,plymouth,btrfs,crypt,dm,dmraid,dmsquash-live,lvm,mdraid,multipath,dasd,dasd_mod,fcoe,iscsi,nbd,nfs,resume,uswsusp,zfcp,znet,selinux}
-
-       sed -e "s/--resolve-names=never//g" -i \
-               /usr/share/dracut/modules.d/99base/init
-
-       # Build initramdisk
-       # Strip all binaries in that initrd, because no debugging code is
-       # needed.
-
-ifeq "$(MACHINE_TYPE)" "arm"
-       # kirkwood kernel
-       /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-kirkwood.img $(KVER)-ipfire-kirkwood
-       cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-kirkwood.img uInit-ipfire-kirkwood
-       # arm7 multi kernel
-       /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-multi.img $(KVER)-ipfire-multi
-       cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-multi.img uInit-ipfire-multi
-#      cd /boot && cp -f ipfirerd-$(KVER)-multi.img zInit-ipfire-multi
-else
-       /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER).img $(KVER)-ipfire
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index c05aca3cb712f853996ef290898d29a264ea5141..e2dd04a02296e15ec50569911d370cc9f62bbbd3 100644 (file)
@@ -91,6 +91,10 @@ ifeq "$(ROOT)" ""
        mv -v /usr/bin/find /bin
        sed -i -e 's|BINDIR=/usr/bin|BINDIR=/bin|' /usr/bin/updatedb
        -mkdir -p /var/lib/locate
+
+       -mkdir -pv /etc/fcron.weekly
+       install -v -m 754 $(DIR_SRC)/config/findutils/updatedb \
+               /etc/fcron.weekly/updatedb
 endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 4e28e4cd37746eb01d4d1211a5ff1ece6ea7acd4..79701aad96713a2130e02fae9dd916840c35c2bf 100644 (file)
@@ -29,6 +29,18 @@ VER = ipfire
 THISAPP    = flash-image
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+DEVICE     = $(shell losetup -f)
+PART_BOOT  = /dev/mapper/$(patsubst /dev/%,%,$(DEVICE))p1
+PART_ROOT  = /dev/mapper/$(patsubst /dev/%,%,$(DEVICE))p2
+
+ifeq "$(SCON)" "1"
+       IMAGE_FILE = /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-core$(CORE).img.gz
+else
+       IMAGE_FILE = /install/images/$(SNAME)-$(VERSION).1gb-ext4.$(MACHINE)-full-core$(CORE).img.gz
+endif
+
+FSTAB_FMT = UUID=%s %-8s %-4s %-10s %d %d\n
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -44,21 +56,19 @@ md5 :
 ###############################################################################
 # Installation Details
 ###############################################################################
-IMGinst  := /install/images/$(SNAME)-$(VERSION).1gb-ext4.$(MACHINE)-full-core$(CORE).img
-IMGinsts := /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-core$(CORE).img
 MNThdd   := /install/harddisk
-IMGpart  := /install/images/part_area
-IMGboot  := /install/images/bootfs
-IMGroot  := /install/images/rootfs
+IMG      := /install/images/image.img
 
 # All sizes in blocks
 ifeq "$(MACHINE_TYPE)" "arm"
+ BOOTLOADER =
  S_OFFSET = 8192
 
  # FAT32
  PART_TYPE = c
 else
- S_OFFSET = 32
+ BOOTLOADER = grub
+ S_OFFSET = 8192
 
  # Logical
  PART_TYPE = L
@@ -69,34 +79,42 @@ endif
 S_BOOT := $(shell echo $$(( 131072 - $(S_OFFSET) )))
 S_ROOT := 1433600
 
+PADDING = 100 # MB
+
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd)
+       # Stop if $(MNThdd) is still mounted
+       mountpoint $(MNThdd) && exit 1 || exit 0
+
+       rm -rf $(IMG) $(MNThdd) && mkdir -p $(MNThdd)
 
-       # Create first 32 sectors of image
-       dd if=/dev/zero of=$(IMGpart) bs=512 count=$(S_OFFSET)
+       # Allocate image on disk
+       dd if=/dev/zero of=$(IMG) bs=512 count=$$(( $(S_OFFSET) + $(S_BOOT) + $(S_ROOT) ))
+       losetup $(DEVICE) $(IMG)
 
-       # Create images for filesystems
-       dd if=/dev/zero of=$(IMGboot) bs=512 count=$(S_BOOT)
-       dd if=/dev/zero of=$(IMGroot) bs=512 count=$(S_ROOT)
+       # Write Partition table
+       echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n" \
+               | sfdisk -D -uS -H 64 -S 32 $(DEVICE)
+
+       kpartx -v -a $(DEVICE)
 
        # Format them
 ifeq "$(PART_TYPE)" "c"
-       mkfs.vfat $(IMGboot)
+       mkfs.vfat $(PART_BOOT)
 else
-       mkfs.ext2 -F $(IMGboot)
+       mkfs.ext2 -F $(PART_BOOT)
 endif
-       mkfs.ext4 -O ^has_journal,extent -F $(IMGroot)
+       mkfs.ext4 -O ^has_journal,extent -F $(PART_ROOT)
 
        # Most systems that use Flashimages has no RTC at boot
        # so the interval check should disables
-       tune2fs -i0 $(IMGroot)
+       tune2fs -i0 $(PART_ROOT)
 
-       # Mount Images
-       mount -o loop $(IMGroot) $(MNThdd)
-       mkdir $(MNThdd)/boot
-       mkdir $(MNThdd)/var
-       mkdir $(MNThdd)/var/log
-       mount -o loop $(IMGboot) $(MNThdd)/boot
+       # Mount root partition
+       mount $(PART_ROOT) $(MNThdd)
+
+       # Mount boot partition
+       mkdir -pv $(MNThdd)/boot
+       mount $(PART_BOOT) $(MNThdd)/boot
 
        # Install MLO and uboot first
 ifeq "$(MACHINE_TYPE)" "arm"
@@ -105,138 +123,96 @@ ifeq "$(MACHINE_TYPE)" "arm"
        cp -v /boot/zImage-ipfire-multi $(MNThdd)/boot/
        sync
        umount $(MNThdd)/boot
-       mount -o loop $(IMGboot) $(MNThdd)/boot
+       mount $(PART_BOOT) $(MNThdd)/boot
 endif
 
        # Install IPFire
-       tar -C $(MNThdd)/ -xvaf /install/cdrom/$(SNAME)-$(VERSION).tlz
+       tar -x --lzma -C $(MNThdd)/ -f /install/cdrom/distro.img
+
        echo "LANGUAGE=en" >> $(MNThdd)/var/ipfire/main/settings
        echo "HOSTNAME=$(SNAME)" >> $(MNThdd)/var/ipfire/main/settings
        echo "THEME=ipfire" >> $(MNThdd)/var/ipfire/main/settings
+
+ifeq "$(SCON)" "1"
+       # Enable serial console
+       sed -i -e "s|1:2345:respawn:|#1:2345:respawn:|g" $(MNThdd)/etc/inittab
+       sed -i -e "s|2:2345:respawn:|#2:2345:respawn:|g" $(MNThdd)/etc/inittab
+       sed -i -e "s|3:2345:respawn:|#3:2345:respawn:|g" $(MNThdd)/etc/inittab
+       sed -i -e "s|4:2345:respawn:|#4:2345:respawn:|g" $(MNThdd)/etc/inittab
+       sed -i -e "s|5:2345:respawn:|#5:2345:respawn:|g" $(MNThdd)/etc/inittab
+       sed -i -e "s|6:2345:respawn:|#6:2345:respawn:|g" $(MNThdd)/etc/inittab
+       sed -i -e "s|#7:2345:respawn:|7:2345:respawn:|g" $(MNThdd)/etc/inittab
+
+ifeq "$(MACHINE_TYPE)" "arm"
+       sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt
+       sed -i -e "s| console=tty1 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script
+       cd $(MNThdd)/boot && ./convert_bootscript
+endif
+endif
+
        -touch $(MNThdd)/lib/modules/$(KVER)-ipfire/modules.dep
        mkdir $(MNThdd)/proc
        mount --bind /proc $(MNThdd)/proc
        mount --bind /dev  $(MNThdd)/dev
        mount --bind /sys  $(MNThdd)/sys
+
        chroot $(MNThdd) /usr/bin/perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
-       sed -i -e "s|DEVICE1|UUID=$$(blkid -sUUID $(IMGboot) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab
-ifeq "$(PART_TYPE)" "c"
-       # ARM flash images have a VFAT partition for /boot.
-       sed -i -e "s|ext2|vfat|" $(MNThdd)/etc/fstab
-endif
-       sed -i -e "s|DEVICE2|#DEVICE2|g" $(MNThdd)/etc/fstab
-       sed -i -e "s|DEVICE3|UUID=$$(blkid -sUUID $(IMGroot) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab
-       sed -i -e "s|DEVICE4|#DEVICE4|g" $(MNThdd)/etc/fstab
-       sed -i -e "s|FSTYPE|ext4|g" $(MNThdd)/etc/fstab
-
-ifneq "$(MACHINE_TYPE)" "arm"
-       sed -i -e "s|MOUNT|ro|g" $(MNThdd)/boot/grub/grub.conf
-       sed -i -e "s|KVER|$(KVER)|g" $(MNThdd)/boot/grub/grub.conf
-       sed -i -e "s|ROOT|UUID=$$(blkid -sUUID $(IMGroot) | cut -d'"' -f2)|g" $(MNThdd)/boot/grub/grub.conf
-       ln -s grub.conf $(MNThdd)/boot/grub/menu.lst
-
-       # Copy grub files manually
-       cp -f $(MNThdd)/usr/lib/grub/i386-pc/* $(MNThdd)/boot/grub/
-endif
 
-       # Setup symlink for partresize at first boot...
-       ln -sf ../init.d/partresize $(MNThdd)/etc/rc.d/rcsysinit.d/S25partresize
-       # Setup symlink for fsresize at second boot...
-       ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S42fsresize
+       # Create /etc/fstab
+       printf "$(FSTAB_FMT)" "$$(blkid -o value -s UUID $(PART_BOOT))" "/boot" \
+               "auto" "defaults" 1 2 >  $(MNThdd)/etc/fstab
+       printf "$(FSTAB_FMT)" "$$(blkid -o value -s UUID $(PART_ROOT))" "/" \
+               "auto" "defaults" 1 1 >> $(MNThdd)/etc/fstab
 
-       # Unmount
-       umount $(MNThdd)/proc
-       umount $(MNThdd)/dev
-       umount $(MNThdd)/sys
-       umount $(MNThdd)/boot
-       umount $(MNThdd)
+ifeq "$(BOOTLOADER)" "grub"
+ifeq "$(SCON)" "1"
+       # Enable serial console on GRUB
+       echo "GRUB_TERMINAL=\"serial console\"" >> $(MNThdd)/etc/default/grub
+       echo "GRUB_SERIAL_COMMAND=\"serial --unit=0 --speed=115200\"" >> $(MNThdd)/etc/default/grub
 
-       # zerofree the ext2 images to get better compression
-ifneq "$(PART_TYPE)" "c"
-       zerofree $(IMGboot)
-       -fsck.ext2 -f -y $(IMGboot)
-       fsck.ext2 -f -y $(IMGboot)
+       sed -i -e "s|panic=10|& console=ttyS0,115200n8|g" $(MNThdd)/etc/default/grub
 endif
-       zerofree $(IMGroot)
-       -fsck.ext4 -f -y  $(IMGroot)
-       fsck.ext4 -f -y  $(IMGroot)
 
-       # Cat to an image
-       cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinst)
+       # Create configuration
+       mkdir -pv $(MNThdd)/boot/grub
+       chroot $(MNThdd) grub-mkconfig -o /boot/grub/grub.cfg
 
-       # Write Partition table
-       echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n,0,0\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n,0,0\n" \
-               | sfdisk -D -uS -H 64 -S 32 $(IMGinst)
-
-ifneq "$(MACHINE_TYPE)" "arm"
-       # Install grub
-       echo "device (hd0) $(IMGinst)" > /tmp/grubinst.tmp
-       echo "root (hd0,0)"           >> /tmp/grubinst.tmp
-       echo "setup (hd0)"            >> /tmp/grubinst.tmp
-       echo "quit"                   >> /tmp/grubinst.tmp
-       grub < /tmp/grubinst.tmp
-       rm -f /tmp/grubinst.tmp
-endif
+       # Insert the UUID because grub-mkconfig fails to detect that correctly
+       sed -i $(MNThdd)/boot/grub/grub.cfg \
+               -e "s/root=[a-z0-9\/]*/root=UUID=$$(blkid -o value -s UUID $(PART_ROOT))/g"
 
-       # Compress Image
-       gzip -f9 $(IMGinst)
-
-       # Now Build serialcon Version
-       # Mount Images
-       mount -o loop $(IMGroot) $(MNThdd)
-       mount -o loop $(IMGboot) $(MNThdd)/boot
-
-ifneq "$(MACHINE_TYPE)" "arm"
-       sed -i -e "s|splashimage|#splashimage|g" $(MNThdd)/boot/grub/grub.conf
-       sed -i -e "s|#serial|serial|g" $(MNThdd)/boot/grub/grub.conf
-       sed -i -e "s|#terminal|terminal|g" $(MNThdd)/boot/grub/grub.conf
-       sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" $(MNThdd)/boot/grub/grub.conf
-else
-       sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt
-       sed -i -e "s| console=tty1 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script
-       cd $(MNThdd)/boot && ./convert_bootscript
+       # Install GRUB
+       grub-install --force --recheck --no-floppy \
+               --root-directory=$(MNThdd) $(DEVICE)
 endif
 
-       sed -i -e "s|1:2345:respawn:|#1:2345:respawn:|g" $(MNThdd)/etc/inittab
-       sed -i -e "s|2:2345:respawn:|#2:2345:respawn:|g" $(MNThdd)/etc/inittab
-       sed -i -e "s|3:2345:respawn:|#3:2345:respawn:|g" $(MNThdd)/etc/inittab
-       sed -i -e "s|4:2345:respawn:|#4:2345:respawn:|g" $(MNThdd)/etc/inittab
-       sed -i -e "s|5:2345:respawn:|#5:2345:respawn:|g" $(MNThdd)/etc/inittab
-       sed -i -e "s|6:2345:respawn:|#6:2345:respawn:|g" $(MNThdd)/etc/inittab
-       sed -i -e "s|#7:2345:respawn:|7:2345:respawn:|g" $(MNThdd)/etc/inittab
+       # Automatically resize the root partition to its maximum size at first boot
+       touch $(MNThdd)/.partresize
 
+       # Unmount
+       umount $(MNThdd)/proc
+       umount $(MNThdd)/sys
+       umount $(MNThdd)/dev
        umount $(MNThdd)/boot
        umount $(MNThdd)
 
-       # zerofree the ext3 images to get better compression
+       # zerofree the ext2 images to get better compression
 ifneq "$(PART_TYPE)" "c"
-       zerofree $(IMGboot)
-       -fsck.ext2 -f -y  $(IMGboot)
-       fsck.ext2 -f -y  $(IMGboot)
+       zerofree $(PART_BOOT)
+       -fsck.ext2 -f -y $(PART_BOOT)
+       fsck.ext2 -f -y $(PART_BOOT)
 endif
-       zerofree $(IMGroot)
-       -fsck.ext4 -f -y  $(IMGroot)
-       fsck.ext4 -f -y  $(IMGroot)
+       zerofree $(PART_ROOT)
+       -fsck.ext4 -f -y $(PART_ROOT)
+       fsck.ext4 -f -y $(PART_ROOT)
 
-       # Cat to an image
-       cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinsts)
-       rm -vf $(IMGpart) $(IMGboot) $(IMGroot)
+       kpartx -d -v $(DEVICE)
+       losetup -d $(DEVICE)
 
-       # Write Partition table
-       echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n,0,0\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n,0,0\n" \
-               | sfdisk -D -uS -H 64 -S 32 $(IMGinsts)
-
-ifneq "$(MACHINE_TYPE)" "arm"
-       # Install grub
-       echo "device (hd0) $(IMGinsts)" > /tmp/grubinst.tmp
-       echo "root (hd0,0)"            >> /tmp/grubinst.tmp
-       echo "setup (hd0)"             >> /tmp/grubinst.tmp
-       echo "quit"                    >> /tmp/grubinst.tmp
-       grub < /tmp/grubinst.tmp
-       rm -f /tmp/grubinst.tmp
-endif
+       # Add padding at the end of the image (to fix alignment issues if the image is
+       # not copied to a block device)
+       dd if=/dev/zero bs=1M count=$(PADDING) >> $(IMG)
 
        # Compress Image
-       gzip -f9 $(IMGinsts)
-
-       rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot)
+       pigz -f9 < $(IMG) > $(IMAGE_FILE)
+       rm -rf $(IMG) $(MNThdd)
index 2b0544bd7c053cac6a754d2d2168b62f5410e5bc..23f6dd3fd25fdc86db2a04c6b102bb089c8a4f8e 100644 (file)
--- a/lfs/grub
+++ b/lfs/grub
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 0.97
+VER        = 2.00
 
 THISAPP    = grub-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = i586
+
 CFLAGS     =
 CXXFLAGS   =
 
@@ -43,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = cd3f3eb54446be6003156158d51f4884
+$(DL_FILE)_MD5 = a1043102fbc7bcedbf53e7ee3d17ab91
 
 install : $(TARGET)
 
@@ -72,31 +73,28 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-
-       # Applying patches.
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-gentoo-14.patch
-       cd $(DIR_APP) && autoreconf
-       cd $(DIR_APP) && autoconf
-
-       # Build.
-       cd $(DIR_APP) && CFLAGS="$(CFLAGS)" ./configure --prefix=/usr \
-               --disable-auto-linux-mem-opt
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && \
+               ./configure \
+                       --prefix=/usr \
+                       --sysconfdir=/etc \
+                       --with-platform=pc \
+                       --with-grubdir=grub \
+                       --program-transform-name=s,grub,grub, \
+                       --disable-grub-mount \
+                       --disable-werror
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
-       # grub files
-       mkdir -vp /boot/grub
-       cp -v /usr/lib/grub/i386-pc/stage{1,2} /boot/grub
-       for i in $(DIR_SRC)/config/grub/*; do \
-           [ -f $$i ] && cp -f $$i /boot/grub; \
-       done
+       -mkdir -pv /boot/grub
+       touch /boot/grub/grub.cfg
+       ln -svf ../boot/grub/grub.cfg /etc/grub2.cfg
 
-       # generate default file
-       grub-set-default 0
+       -mkdir -pv /etc/default
+       install -m 644 $(DIR_SRC)/config/grub2/default /etc/default/grub
 
-       # Disable PaX mprotect for grub
-       paxctl -m /usr/sbin/grub
+       # Disable hardening.
+       paxctl -mpes /usr/sbin/grub-bios-setup /usr/sbin/grub-probe
 
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/initrd b/lfs/initrd
deleted file mode 100644 (file)
index 42da9bc..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# 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 General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = ipfire
-
-THISAPP    = initrd
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-
-SUP_ARCH   = i586
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-install : $(TARGET)
-
-check :
-
-download :
-
-md5 :
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) :
-       @$(PREBUILD)
-       rm -f /install/images/initrd
-
-       # Finish up initrd directory
-       -mkdir -p /install/initrd/{dev,etc,mnt,root,lib/modules/$(KVER)-ipfire/kernel/drivers,cdrom,dev,harddisk,proc,tmp,usr/share/terminfo/l,var/run,sys}
-       cd /install/initrd && lzma -d -c /boot/ipfirerd-$(KVER).img | cpio -i
-
-       # Copy Files packages for installer
-       find $(DIR_SRC)/config/rootfiles/installer/* -maxdepth 1 | xargs cat | grep -v "^#" > /tmp/ROOTFILES
-
-       # Patch Kernel Version to rootfiles
-       sed -e "s/KVER/$(KVER)/g" -i /tmp/ROOTFILES
-
-       -cd / && cpio -d -p /install/initrd < /tmp/ROOTFILES
-
-       # Copy hid and network modules (and deps)
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/hid \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/net \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/pcmcia \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/ssb \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/uio \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/ptp \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/dca \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/pps \
-               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
-       # Remove wireless modules
-       rm -rf /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/net/wireless
-
-       cd /install/initrd/etc && rm -f fstab
-       cp -aRf $(DIR_SRC)/config/install/* /install/initrd/etc/
-       rm -rf /install/initrd/usr/share/man
-       chmod 755 /install/initrd/etc/halt /install/initrd/etc/rc_installer
-
-       cd /install/initrd/ && patch -Np0 < $(DIR_SRC)/src/patches/dracut-init_start_ipfireinstaller.patch
-
-       # Hide udev messages
-       sed -i -e "s|err|none|g" /install/initrd/etc/udev/udev.conf
-
-       # make new dependencies 
-       depmod -a -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire
-
-       -mkdir -p /install/{images,mnt}
-       rm -rf /install/mnt/*
-
-       #Build Module deps for installer.
-       depmod -a -b /install/initrd/ -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire
-
-       #Name service from dhcpcd
-       cp -f /etc/nsswitch.conf /install/initrd/etc/
-       cp -f $(DIR_SRC)/config/initrd/dhcpc/* /install/initrd/var/ipfire/dhcpc/dhcpcd-hooks/
-
-       # Install needed locales.
-       -mkdir -pv /install/initrd/usr/lib/locale
-       for lang in $(DIR_SRC)/langs/*; do \
-               for path in /usr/lib/locale/$${lang##*/}*; do \
-                       [ -d "$${path}" ] && cp -lrvf "$${path}" /install/initrd/usr/lib/locale/; \
-               done; \
-       done
-
-       cd /install/initrd && find . | cpio -o -H newc | lzma > /install/images/initrd
-       cd /install/initrd && find ./ -ls > $(DIR_INFO)/_build.initrd.log
-
-       @$(POSTBUILD)
index 4acf65e13eb965ae8673e0a40e72786a30d3a5c9..c5fe54f8245ad9adeebe488b08ecfe86496c7e69 100644 (file)
@@ -162,8 +162,10 @@ $(TARGET) :
        ln -sf ../init.d/udev        /etc/rc.d/rcsysinit.d/S10udev
        ln -sf ../init.d/waitdrives  /etc/rc.d/rcsysinit.d/S19waitdrives
        ln -sf ../init.d/swap        /etc/rc.d/rcsysinit.d/S20swap
+       ln -sf ../init.d/partresize  /etc/rc.d/rcsysinit.d/S25partresize
        ln -sf ../init.d/checkfs     /etc/rc.d/rcsysinit.d/S30checkfs
        ln -sf ../init.d/mountfs     /etc/rc.d/rcsysinit.d/S40mountfs
+       ln -sf ../init.d/fsresize    /etc/rc.d/rcsysinit.d/S42fsresize
        ln -sf ../init.d/udev_retry  /etc/rc.d/rcsysinit.d/S45udev_retry
        ln -sf ../init.d/cleanfs     /etc/rc.d/rcsysinit.d/S50cleanfs
        ln -sf ../init.d/setclock    /etc/rc.d/rcsysinit.d/S60setclock
index c02e0bac5c6f374212048e017b255f72e9eb3a1d..7f73222c1b87170742141379b46e50115896a564 100644 (file)
@@ -30,6 +30,8 @@ THISAPP    = installer
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+SLOGAN     = An Open Source Firewall Solution
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -48,25 +50,20 @@ md5 :
 
 $(TARGET) :
        @$(PREBUILD)
-       -mkdir -p /install/initrd/bin
-       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/install+setup/* $(DIR_APP)
-       for i in $(DIR_SRC)/langs/*/install/lang_*.c ; do \
-           cp $$i $(DIR_APP)/libsmooth; \
-       done
-       cd $(DIR_APP)/libsmooth && chmod 755 makelangs.pl
-       cd $(DIR_APP)/libsmooth && make CFLAGS="-Os -fomit-frame-pointer -Wall \
-           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
-            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'" 
-       cd $(DIR_APP)/install && make CFLAGS="-Os -fomit-frame-pointer -Wall \
-           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
-            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DKERNEL_VERSION='\"$(KVER)\"'"
-       cd $(DIR_APP)/install && install -v -m 0755 install probenic.sh \
-               downloadsource.sh mountsource.sh mountdest.sh /install/initrd/bin
+       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/installer/* $(DIR_APP)
+
+       cd $(DIR_APP) && ./autogen.sh
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --with-distro-name="$(NAME)" \
+               --with-distro-sname="$(SNAME)" \
+               --with-distro-slogan="$(SLOGAN)" \
+               --with-config-root="$(CONFIG_ROOT)"
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+
        #Patch ISO Name for download ...
-       sed -i -e "s|ipfire.iso|download.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso|g" \
-                               /install/initrd/bin/downloadsource.sh
-       #Patch version for mediacheck ...
-       sed -i -e "s|FullIPFireVersion|$(SNAME)-$(VERSION)-core$(CORE)|g" \
-                               /install/initrd/bin/mountsource.sh
+       #sed -i -e "s|ipfire.iso|download.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso|g" \
+       #                       /usr/bin/downloadsource.sh
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
similarity index 60%
rename from src/install+setup/libsmooth/makelangs.pl
rename to lfs/libsmooth
index 6fc2098d4e357f4f32e4fe64a086561c185222a9..0f7a13537ca11b1320a0a2f20e6036e625c0046f 100644 (file)
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
 #                                                                             #
 ###############################################################################
 
-while (<>)
-{
-       if (/\/\* (TR_[A-Z0-9_]*)/) {
-               print "\t$1,\n"; }
-} 
-print "};\n";
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = ipfire
+
+THISAPP    = libsmooth
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/libsmooth/* $(DIR_APP)
+
+       cd $(DIR_APP) && ./autogen.sh
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 6beb75c5707b21e7fc50057d66929e7cd3958dad..27621559533c2bbb0679b87fbcb29c7b2302032d 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
@@ -277,13 +277,11 @@ ifeq "$(KCFG)" "-rpi"
 else
        cd $(DIR_APP) && make $(MAKETUNING) bzImage modules
        cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
-       ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX)
 endif
 endif
 endif
        cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX)
        cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX)
-       ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX)
        cd $(DIR_APP) && make $(MAKETUNING) modules_install
        cd $(DIR_APP) && make $(MAKETUNING) firmware_install
 
@@ -295,6 +293,17 @@ ifeq "$(MACHINE_TYPE)" "arm"
                        done
 endif
 
+       # Create initramfs images
+       dracut --force --verbose --strip /boot/initramfs-$(KVER)-$(VERSUFIX).img $(KVER)-$(VERSUFIX)
+
+ifeq "$(KCFG)" "-kirkwood"
+       cd /boot && mkimage -A arm -T ramdisk -C lzma -d initramfs-$(KVER)-kirkwood.img uInit-ipfire-kirkwood
+endif
+
+ifeq "$(KCFG)" "-multi"
+       cd /boot && mkimage -A arm -T ramdisk -C lzma -d initramfs-$(KVER)-multi.img uInit-ipfire-multi
+endif
+
 ifeq "$(LASTKERNEL)" "1"
        # Only do this once
        cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/
similarity index 88%
rename from lfs/mktemp
rename to lfs/lvm2
index 73d834424635638aba03ee4ab0a3bbdd69ebab80..6314db0cc45101ca13a894aa52197cf52fcaac42 100644 (file)
+++ b/lfs/lvm2
 
 include Config
 
-VER        = 1.5
+VER        = 2.02.95
 
-THISAPP    = mktemp-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+THISAPP    = LVM2.$(VER)
+DL_FILE    = $(THISAPP).tgz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 3359aa075083aeae3ed6ca67ec5d944b
+$(DL_FILE)_MD5 = bd470a802046c807603618a443732ea7
 
 install : $(TARGET)
 
@@ -50,6 +50,9 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
+dist: 
+       @$(PAK)
+
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -69,11 +72,13 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-add_tempfile-3.patch
-       cd $(DIR_APP) && ./configure --prefix=/usr --with-libc
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && \
+               ./configure \
+                       --prefix=/usr \
+                       --with-usrlibdir=/usr/lib \
+                       --enable-pkgconfig
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && make install-tempfile
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 5c4024700fccf823db6e3c8465982b43f06139c6..2970b004c74a6c858565a378d1d19cc44970ccfe 100644 (file)
--- a/lfs/mdadm
+++ b/lfs/mdadm
 
 include Config
 
-VER        = 3.2.1
+VER        = 3.3.1
 
 THISAPP    = mdadm-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = mdadm
-PAK_VER    = 2
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d1e2549202bd79d9e99f1498d1109530
+$(DL_FILE)_MD5 = 4227d48de62dfb217c92fa0c54171bbe
 
 install : $(TARGET)
 
@@ -76,11 +72,9 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       ln -sf ../init.d/mdadm /etc/rc.d/rcsysinit.d/S11mdadm
-       ln -sf ../init.d/mdadm /etc/rc.d/rc0.d/S85mdadm
-       ln -sf ../init.d/mdadm /etc/rc.d/rc6.d/S75mdadm
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 26ec3dd0087ed71f7601eb3f06adf88363a847f3..155cd4a07146f4dfad5995013948a42a40b4c173 100644 (file)
 
 include Config
 
-VER        = 1.0.25
+VER        = 1.1.3
 
 THISAPP    = minidlna-$(VER)
-DL_FILE    = minidlna_$(VER)_src.tar.gz
+DL_FILE    = minidlna-$(VER).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = minidlna
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = "ffmpeg flac libexif libid3tag libogg sqlite"
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d966256baf2f9b068b9de871ab5dade5
+$(DL_FILE)_MD5 = 879027192c89e5376cdd2ae2d1aa33b4
 
 install : $(TARGET)
 
@@ -77,7 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && sed -i '/include/a #include <limits.h>/' metadata.c
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
 
index 6902ccac19165116982fce88e9e8bb5dc93a1bcc..c0e3919f5537f7c0895a842da29660389a099c1d 100644 (file)
@@ -48,16 +48,8 @@ md5 :
 
 $(TARGET) :
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup && cp -R $(DIR_SRC)/src/misc-progs/ $(DIR_SRC)
-       cp -R $(DIR_SRC)/src/install+setup/ $(DIR_SRC)
-       for i in $(DIR_SRC)/langs/*/install/lang_*.c ; do \
-           cp $$i $(DIR_SRC)/install+setup/libsmooth; \
-       done
-       cd $(DIR_SRC)/install+setup/libsmooth && chmod 755 makelangs.pl
-       cd $(DIR_SRC)/install+setup/libsmooth && make CFLAGS="$(CFLAGS) -Wall \
-           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
-            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'" 
+       @rm -rf $(DIR_APP) && cp -R $(DIR_SRC)/src/misc-progs/ $(DIR_SRC)
        cd $(DIR_APP) && make CFLAGS="$(CFLAGS) -Wall -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DSNAME='\"$(SNAME)\"'"
        cd $(DIR_APP) && make install
-       @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup
+       @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/multipath-tools b/lfs/multipath-tools
new file mode 100644 (file)
index 0000000..ac00e2b
--- /dev/null
@@ -0,0 +1,79 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# 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 General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 120613
+
+THISAPP    = multipath-tools-$(VER)
+DL_FILE    = $(THISAPP).tgz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 84632b08dbca9fa04179edd8c469c92a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP)/kpartx && make $(MAKETUNING)
+       cd $(DIR_APP)/kpartx && make install PREFIX=/usr
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index b5c57d0d6b017bc6b8c9f41589814b964b551c49..daad9dce9198f9714152ac2836395f8b0dfc1fdb 100644 (file)
--- a/lfs/newt
+++ b/lfs/newt
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.51.6
+VER        = 0.52.17
 
 THISAPP    = newt-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -38,9 +38,9 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 
 objects = $(DL_FILE)
 
-$(DL_FILE)                 = $(DL_FROM)/$(DL_FILE)
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5             = 98567d5a18535e3a926dca5b4527b4a9
+$(DL_FILE)_MD5 = f36d4d908965a0c89fd6fd8b61a6118b
 
 install : $(TARGET)
 
@@ -69,13 +69,10 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/newt-0.51.6-if1close.patch
-       cd $(DIR_APP) && ./configure --without-gpm-support
-       cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = $(CFLAGS) -Wall -D_GNU_SOURCE%' Makefile
-       cd $(DIR_APP) && make
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr \
+               --without-gpm-support --without-tcl
+       cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && install -m 0644 newt.h /usr/include
-       ln -sf libnewt.so.0.51 /usr/lib/libnewt.so
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 25db9e5c3d7658a6686dcee80de8bc52fc9929ec..6a3718a395ca5a776f88725954a1dae6381c84f1 100644 (file)
 
 include Config
 
-VER        = 2.3
+VER        = 3.1
 
 THISAPP    = parted-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 30ceb6df7e8681891e865e2fe5a7903d
+$(DL_FILE)_MD5 = 5d89d64d94bcfefa9ce8f59f4b81bdcb
 
 install : $(TARGET)
 
@@ -77,7 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-device-mapper
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index 46036c8b8770f93c5dabedceae71641cb8189503..b5bd78771c5c56c38fac9d2e54f390ba771e82c8 100644 (file)
--- a/lfs/patch
+++ b/lfs/patch
 
 include Config
 
-VER        = 2.5.4
+VER        = 2.7.1
 
 THISAPP    = patch-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
@@ -53,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ee5ae84d115f051d87fcaaef3b4ae782
+$(DL_FILE)_MD5 = e9ae5393426d3ad783a300a338c09b72
 
 install : $(TARGET)
 
@@ -82,8 +82,8 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && CPPFLAGS=-D_GNU_SOURCE ./configure $(EXTRA_CONFIG)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
        @rm -rf $(DIR_APP)
diff --git a/lfs/pigz b/lfs/pigz
new file mode 100644 (file)
index 0000000..51c3b85
--- /dev/null
+++ b/lfs/pigz
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# 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 General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.3.1
+
+THISAPP    = pigz-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = e803f8bc0770c7a5e96dccb1d2dd2aab
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make CFLAGS="$(CFLAGS)" $(MAKETUNING)
+       cd $(DIR_APP) && install -m 755 pigz /usr/bin/pigz
+       ln -svf pigz /usr/bin/unpigz
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 7b88adff2c6c6aaed1416eb7469c7dc73425eee9..eb488e3363af3798335470e5dc0bdb97b3e7d31f 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 6.2
+VER        = 6.3
 
 THISAPP    = readline-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 67948acb2ca081f23359d0256e9a271c
+$(DL_FILE)_MD5 = 33c8fb279e981274f485fd91da77e94a
 
 install : $(TARGET)
 
@@ -71,8 +71,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
 
-       for i in $$(seq 1 4); do \
-               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline62-$$(printf "%03d" "$${i}") || exit 1; \
+       for i in $$(seq 1 6); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline63-$$(printf "%03d" "$${i}") || exit 1; \
        done
 
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
index 1b33b966c159401eec2d25da224bb80572c88733..764d0edb396a973f9f8b4e1908cc3f22b16dfff2 100644 (file)
--- a/lfs/setup
+++ b/lfs/setup
@@ -48,17 +48,15 @@ md5 :
 
 $(TARGET) :
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/install+setup/* $(DIR_APP)
-
-       cd $(DIR_APP)/libsmooth && make CFLAGS="$(CFLAGS) -Wall \
-           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
-            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'"
-
-       cd $(DIR_APP)/setup && make CFLAGS="$(CFLAGS) -Wall \
-           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
-            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'"
-
-       cd $(DIR_APP)/setup && install -m 0755 setup /usr/local/sbin
-       install -m 0755 $(DIR_SRC)/src/install+setup/install/probenic.sh /bin
+       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/setup/* $(DIR_APP)
+       cd $(DIR_APP) && bash autogen.sh
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --with-distro-name="$(NAME)" \
+               --with-distro-sname="$(SNAME)" \
+               --with-distro-slogan="$(SLOGAN)" \
+               --with-config-root="$(CONFIG_ROOT)"
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index e6c8cc88d3d2f90d746240c120067f8ebdb65f60..55590f7cb2c8bff423d8f5328d7589a0ab9925e8 100644 (file)
--- a/lfs/slang
+++ b/lfs/slang
 
 include Config
 
-VER        = 1.4.9
+VER        = 2.2.4
 
 THISAPP    = slang-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4fbb1a7f1257e065ca830deefe13d350
+$(DL_FILE)_MD5 = 86cd8689cd71e281b4720fef8453ceeb
 
 install : $(TARGET)
 
@@ -69,17 +69,9 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-debian-utf8.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-acs.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.5-utf8-segv.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-fix.patch
-       perl -p -i -e 's/(ELF_CFLAGS=\"[^\"]*)-O2([^\"]*\".*)/$1'"$(CFLAGS)"' $2/gs' configure
-       cd $(DIR_APP) && ./configure --prefix=/usr
-       cd $(DIR_APP) && make elf all
-       cd $(DIR_APP) && make install-elf
-       ln -sf libslang-utf8.so.1.4.9 /usr/lib/libslang-utf8.so.1
-       ln -sf libslang-utf8.so /usr/lib/libslang.so
-       ln -sf libslang-utf8.a /usr/lib/libslang.a
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
+       cd $(DIR_APP) && make #$(MAKETUNING)
+       cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index a084816309c4f69ae518c187e23e4280289cb117..19d9553797f966ff9135ceaa5a1d0e2cd85309b4 100644 (file)
@@ -75,7 +75,7 @@ $(TARGET) :
 
        # Config files
        cp -rvf $(DIR_SRC)/config/etc/* /etc;
-       touch /etc/mtab
+       touch /etc/{fs,m}tab
        echo "$(NAME) v$(VERSION) - $(SLOGAN)" >  /etc/issue
        echo "===============================" >> /etc/issue
        echo "\n running on \s \r \m"          >> /etc/issue
index 2a548be832f76a448098b0cb4db36d4aeba7f179..9c3239ea46d506a678bdf2c76d03ac289d92d78c 100644 (file)
@@ -31,10 +31,6 @@ DL_FILE    = xfsprogs_$(VER)-1.tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = xfsprogs
-PAK_VER    = 1
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
diff --git a/make.sh b/make.sh
index ce45d0d9ed21ff2e173ca1188e8dcd41d2572f57..7b75b87c21176fe3fa7c06a9ca36055c38b848ad 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -362,7 +362,6 @@ buildbase() {
     lfsmake2 less
     lfsmake2 make
     lfsmake2 man
-    lfsmake2 mktemp
     lfsmake2 kmod
     lfsmake2 net-tools
     lfsmake2 patch
@@ -377,7 +376,6 @@ buildbase() {
     lfsmake2 vim
     lfsmake2 xz
     lfsmake2 paxctl
-    lfsmake2 grub
 }
 
 buildipfire() {
@@ -398,6 +396,12 @@ buildipfire() {
   ipfiremake rpi-firmware
   ipfiremake bc
   ipfiremake u-boot
+  ipfiremake cpio
+  ipfiremake mdadm
+  ipfiremake dracut
+  ipfiremake lvm2
+  ipfiremake multipath-tools
+  ipfiremake grub
 
   case "${TARGET_ARCH}" in
        i586)
@@ -466,8 +470,6 @@ buildipfire() {
   ipfiremake dhcpcd
   ipfiremake boost
   ipfiremake linux-atm
-  ipfiremake cpio
-  ipfiremake dracut
   ipfiremake expat
   ipfiremake gdbm
   ipfiremake pam
@@ -492,6 +494,7 @@ buildipfire() {
   ipfiremake pcre
   ipfiremake slang
   ipfiremake newt
+  ipfiremake libsmooth
   ipfiremake attr
   ipfiremake acl
   ipfiremake libcap
@@ -747,7 +750,6 @@ buildipfire() {
   ipfiremake usb_modeswitch
   ipfiremake usb_modeswitch_data
   ipfiremake zerofree
-  ipfiremake mdadm
   ipfiremake pound
   ipfiremake minicom
   ipfiremake ddrescue
@@ -814,6 +816,7 @@ buildipfire() {
   ipfiremake batctl
   ipfiremake perl-PDF-API2
   ipfiremake squid-accounting
+  ipfiremake pigz
 }
 
 buildinstaller() {
@@ -823,7 +826,6 @@ buildinstaller() {
   ipfiremake memtest
   ipfiremake installer
   installmake strip
-  ipfiremake initrd
 }
 
 buildpackages() {
@@ -860,6 +862,7 @@ buildpackages() {
   modprobe loop 2>/dev/null
   if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ] || [ -e "/dev/loop-control" ]); then
        ipfiremake flash-images
+       ipfiremake flash-images SCON=1
   fi
 
   mv $LFS/install/images/{*.iso,*.tgz,*.img.gz,*.bz2} $BASEDIR >> $LOGFILE 2>&1
diff --git a/src/dracut/dracut.conf b/src/dracut/dracut.conf
deleted file mode 100644 (file)
index b671b7a..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# dracut config file
-
-# Specific list of dracut modules to use
-#dracutmodules+=""
-
-# Dracut modules to omit
-#omit_dracutmodules+=""
-
-# Dracut modules to add to the default
-#add_dracutmodules+=""
-
-# additional kernel modules to the default
-#add_drivers+=""
-
-# list of kernel filesystem modules to be included in the generic initramfs
-filesystems+="ext2 ext3 ext4 reiserfs reiser4 iso9660 vfat"
-
-# build initrd only to boot current hardware
-#hostonly="yes"
-#
-
-# install local /etc/mdadm.conf
-mdadmconf="no"
-
-# install local /etc/lvm/lvm.conf
-lvmconf="no"
diff --git a/src/dracut/switch_root.c b/src/dracut/switch_root.c
deleted file mode 100644 (file)
index 1520387..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * switchroot.c - switch to new root directory and start init.
- *
- * Copyright 2002-2008 Red Hat, Inc.  All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors:
- *     Peter Jones <pjones@redhat.com>
- *     Jeremy Katz <katzj@redhat.com>
- */
-#include <sys/mount.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#include <dirent.h>
-
-#ifndef MS_MOVE
-#define MS_MOVE 8192
-#endif
-
-enum {
-       ok,
-       err_no_directory,
-       err_usage,
-};
-
-/* remove all files/directories below dirName -- don't cross mountpoints */
-static int
-recursiveRemove(char * dirName)
-{
-       struct stat sb,rb;
-       DIR * dir;
-       struct dirent * d;
-       char * strBuf = alloca(strlen(dirName) + 1024);
-
-       if (!(dir = opendir(dirName))) {
-               printf("error opening %s: %m\n", dirName);
-               return 0;
-       }
-
-       if (fstat(dirfd(dir),&rb)) {
-               printf("unable to stat %s: %m\n", dirName);
-               closedir(dir);
-               return 0;
-       }
-
-       errno = 0;
-
-       while ((d = readdir(dir))) {
-               errno = 0;
-
-               if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, "..")) {
-                       errno = 0;
-                       continue;
-               }
-
-               strcpy(strBuf, dirName);
-               strcat(strBuf, "/");
-               strcat(strBuf, d->d_name);
-
-               if (lstat(strBuf, &sb)) {
-                       printf("failed to stat %s: %m\n", strBuf);
-                       errno = 0;
-                       continue;
-               }
-
-               /* only descend into subdirectories if device is same as dir */
-               if (S_ISDIR(sb.st_mode)) {
-                       if (sb.st_dev == rb.st_dev) {
-                               recursiveRemove(strBuf);
-                               if (rmdir(strBuf))
-                                       printf("failed to rmdir %s: %m\n", strBuf);
-                       }
-                       errno = 0;
-                       continue;
-               }
-               if (unlink(strBuf)) {
-                       printf("failed to remove %s: %m\n", strBuf);
-                       errno = 0;
-                       continue;
-               }
-       }
-
-       if (errno) {
-               closedir(dir);
-               printf("error reading from %s: %m\n", dirName);
-               return 1;
-       }
-
-       closedir(dir);
-       return 0;
-}
-
-static int switchroot(const char *newroot)
-{
-       /*  Don't try to unmount the old "/", there's no way to do it. */
-       const char *umounts[] = { "/dev", "/proc", "/sys", NULL };
-       int errnum;
-       int i;
-
-       for (i = 0; umounts[i] != NULL; i++) {
-               char newmount[PATH_MAX];
-               strcpy(newmount, newroot);
-               strcat(newmount, umounts[i]);
-               if (mount(umounts[i], newmount, NULL, MS_MOVE, NULL) < 0) {
-                       fprintf(stderr, "Error mount moving old %s %s %m\n",
-                               umounts[i], newmount);
-                       fprintf(stderr, "Forcing unmount of %s\n", umounts[i]);
-                       umount2(umounts[i], MNT_FORCE);
-               }
-       }
-
-       if (chdir(newroot) < 0) {
-               errnum=errno;
-               fprintf(stderr, "switchroot: chdir failed: %m\n");
-               errno=errnum;
-               return -1;
-       }
-       recursiveRemove("/");
-       if (mount(newroot, "/", NULL, MS_MOVE, NULL) < 0) {
-               errnum = errno;
-               fprintf(stderr, "switchroot: mount failed: %m\n");
-               errno = errnum;
-               return -1;
-       }
-
-       if (chroot(".")) {
-               errnum = errno;
-               fprintf(stderr, "switchroot: chroot failed: %m\n");
-               errno = errnum;
-               return -2;
-       }
-       return 1;
-}
-
-static void usage(FILE *output)
-{
-       fprintf(output, "usage: switchroot <newrootdir> <init> <args to init>\n");
-       if (output == stderr)
-               exit(err_usage);
-       exit(ok);
-}
-
-int main(int argc, char *argv[])
-{
-       char *newroot = argv[1];
-       char *init = argv[2];
-       char **initargs = &argv[2];
-
-       if (newroot == NULL || newroot[0] == '\0' ||
-           init == NULL || init[0] == '\0' ) {
-               usage(stderr);
-       }
-
-       if (switchroot(newroot) < 0) {
-               fprintf(stderr, "switchroot has failed.  Sorry.\n");
-               return 1;
-       }
-       if (access(initargs[0], X_OK))
-               fprintf(stderr, "WARNING: can't access %s\n", initargs[0]);
-
-       /* get session leader */
-       setsid();
-       /* set controlling terminal */
-       ioctl (0, TIOCSCTTY, 1);
-
-       execv(initargs[0], initargs);
-}
-
index 32236e6cd761615d885f9a7c14ac73975c432945..dca3e40163caeb050dc546684ff0d00258171851 100644 (file)
@@ -28,7 +28,7 @@ ser_console $cmdline
 #
 /etc/init.d/sysklogd start
 export LANG=en_US.utf8
-/usr/local/sbin/setup /dev/tty2 INSTALL
+/usr/sbin/setup /dev/tty2 INSTALL
 if [ "${?}" == "1" ]; then
        echo Setup not finished. Rebooting ...
        reboot -f
index 3dbd1addd50230fed436e5d919ccc1b7f9ac779b..325c731af849ab8e78f9ae348f7cf0070f6f69b6 100644 (file)
 
 case "${1}" in
        start)
-               boot_mesg "Background Autoresize root partition to use the whole drive"
-               # Detect device
-               ROOT=`mount | grep -m1 " / " | cut -d" " -f1`;
-               DRV=${ROOT::`expr length $ROOT`-1}
+               if [ -e "/.resizefs" ]; then
+                       boot_mesg "Re-sizing root partition..."
 
-               boot_mesg "resize ${DRV}3 ..."
-               nice -n 19 $0 background ${DRV}3 > /dev/null &
-               ;;
-       background)
-               resize2fs -p $2
+                       # Find root device
+                       while read -r dev mountpoint fs options; do
+                               # Skip generic entries
+                               [ "${dev}" = "rootfs" ] && continue
 
-               # Erase symlink, it should run only once
-               rm -f /etc/rc.d/rcsysinit.d/S42fsresize
-               sync
-               exit 0;
+                               if [ "${mountpoint}" = "/" ]; then
+                                       # Resize filesystem
+                                       resize2fs -p "${dev}"
 
+                                       # Remove marker
+                                       rm -f /.resizefs
+                                       break
+                               fi
+                       done < /proc/mounts
+               fi
                ;;
 
        *)
diff --git a/src/initscripts/init.d/mdadm b/src/initscripts/init.d/mdadm
deleted file mode 100644 (file)
index 03f6fe4..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-########################################################################
-# Begin $rc_base/init.d/mdadm
-#
-# Description : This script controls software Raid
-#
-# Authors     : Dirk Hoefle  <dhoefle@gmx.net>
-#
-# Version     : 01.00
-#
-# Notes       :
-#
-########################################################################
-
-. /etc/sysconfig/rc
-. ${rc_functions}
-
-case "${1}" in
-   start)
-               boot_mesg "Scan/assemble mdadm raid devices..."
-               mdadm --assemble --scan
-               echo_ok
-               ;;
-
-   stop)
-               boot_mesg "Stopping Raid devices..."
-               mdadm --stop --scan
-               echo_ok
-               ;;
-
-   restart)
-               ${0} stop
-               sleep 1
-               ${0} start
-               ;;
-
-   status)
-               cat /proc/mdstat
-               ;;
-
-   *)
-               echo "Usage: ${0} {start|stop|restart|status}"
-               exit 1
-               ;;
-esac
-
-# End $rc_base/init.d/mdadm
index 682306760b5edb783d4c7cfbcead90a315eca370..74ad8f880f3d714fcd9b1c49273f5966574dbc03 100644 (file)
 case "${1}" in
        start)
                boot_mesg "Starting minidlna..."
-               loadproc /usr/sbin/minidlna
+               loadproc /usr/sbin/minidlnad
                ;;
 
        stop)
                boot_mesg "Stopping minidlna..."
-               killproc /usr/sbin/minidlna
+               killproc /usr/sbin/minidlnad
                ;;
 
        reload)
                boot_mesg "Reloading minidlna..."
-               reloadproc /usr/sbin/minidlna
+               reloadproc /usr/sbin/minidlnad
                ;;
 
        restart)
@@ -36,7 +36,7 @@ case "${1}" in
                ;;
 
        status)
-               statusproc /usr/sbin/minidlna
+               statusproc /usr/sbin/minidlnad
                ;;
 
        *)
index f7be82d01e5097e158a8cf032743f756d196ebdc..05e8eb67aa6e46f52f8fb1de1feb6106b50e6d1f 100644 (file)
@@ -34,6 +34,11 @@ case "${1}" in
                        mount -n -t tmpfs -o nosuid,nodev,mode=755,size=8M /run /run || failed=1
                fi
 
+               if ! mountpoint /var/lock &>/dev/null; then
+                       boot_mesg -n " /var/lock" ${NORMAL}
+                       mount -n -t tmpfs -o nosuid,nodev,size=8M /var/lock /var/lock || failed=1
+               fi
+
                boot_mesg "" ${NORMAL}
 
                (exit ${failed})
index f9b1aa92f09f6a2aa38aecefd9f6c01cfe2c7823..38c5683166e034c93c7f7abd8d6768ecac3dd6fc 100644 (file)
 
 case "${1}" in
        start)
+               if [ -e "/.partresize" ]; then
+                       boot_mesg "Mounting root file system in read/write mode ..."
+                       mount -o remount,rw / > /dev/null
+                       evaluate_retval
 
-               boot_mesg "Mounting root file system in read/write mode ..."
-               mount -o remount,rw / > /dev/null
-               evaluate_retval
-
-               boot_mesg "Create /etc/mtab..."
-               > /etc/mtab
-               mount -f / || failed=1
-               (exit ${failed})
-               evaluate_retval
-
-               # Detect device
-               ROOT=`mount | grep -m1 " / " | cut -d" " -f1`;
-               if [ "${ROOT:`expr length $ROOT`-2:1}" == "p" ]; then
-                       DRV=${ROOT::`expr length $ROOT`-2}
-               else
-                       DRV=${ROOT::`expr length $ROOT`-1}
-               fi
+                       # Detect device
+                       while read -r dev mountpoint fs options; do
+                               [ "${dev}" = "rootfs" ] && continue
+
+                               if [ "${mountpoint}" = "/" ]; then
+                                       # Find root partition number
+                                       part_num="${dev: -1}"
 
-               boot_mesg "Change Partition ${DRV}3 to all free space ..."
-               echo -e ',+' | sfdisk --no-reread -f -N3 ${DRV} 2>/dev/null
+                                       # Find path to the root device
+                                       root_dev="${dev::-1}"
+                                       if [ ! -b "${dev::-1}" -a "${root_dev: -1}" = "p" ]; then
+                                               root_dev="${dev::-2}"
+                                       fi
 
-               boot_mesg "Update c,h,s values of ${DRV}1 ..."
-               echo -e ',' | sfdisk --no-reread -f -N1 ${DRV} &> /dev/null
+                                       boot_mesg "Growing root partition to maximum size..."
+                                       echo -e ',+' | sfdisk --no-reread -f -N${part_num} "${root_dev}" 2>/dev/null
 
-               # Erase symlink, it should run only once
-               rm -f /etc/rc.d/rcsysinit.d/S25partresize
+                                       # Update c,h,s values of the boot partition...
+                                       if [ ${part_num} -ne 1 -a -b "${root_dev}1" ]; then
+                                               echo -e ',' | sfdisk --no-reread -f -N1 ${DRV} &> /dev/null
+                                       fi
 
-               boot_mesg "Rebooting ..."
-               sync
-               mount -o remount,ro / &> /dev/null
-               sleep 15
-               reboot -f
+                                       # The filesystem should be resized after
+                                       # this operation
+                                       touch /.resizefs
 
+                                       # Remove marker
+                                       rm -f /.partresize
+
+                                       # Reboot
+                                       boot_mesg "Rebooting system..."
+                                       mount -o remount,ro / &>/dev/null
+                                       sleep 15
+                                       reboot -f
+                               fi
+                       done < /proc/mounts
+               fi
                ;;
        *)
                echo "Usage: ${0} {start}"
index 848dec6ad4ff0fc55a97b644517576ad41128af1..2ee2ffb72f783bbe223127b80a7dc548b24534ba 100644 (file)
@@ -68,6 +68,10 @@ case "$1" in
                evaluate_retval
                ;;
        restore)
+               if ! mountpoint $RRDLOG &>/dev/null; then
+                       mount -t tmpfs -o size=64M none "$RRDLOG"
+               fi
+
                if [ -e $RRDLOG.bak/cron/new.root ]; then
                        if [ -e $RRDLOG.bak/cron/root ]; then
                                rm -f $RRDLOG.bak/cron/new.root
diff --git a/src/install+setup/install/config.c b/src/install+setup/install/config.c
deleted file mode 100644 (file)
index b1d533e..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/* SmoothWall install program.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence.  See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * Write the config and get password stuff.
- * 
- */
-
-#include "install.h"
-
-extern FILE *flog;
-extern char *mylog;
-
-extern char **ctr;
-
-int write_lang_configs( char *lang)
-{
-       struct keyvalue *kv = initkeyvalues();
-       
-       /* default stuff for main/settings. */
-       replacekeyvalue(kv, "LANGUAGE", lang);
-       replacekeyvalue(kv, "HOSTNAME", SNAME);
-       replacekeyvalue(kv, "THEME", "ipfire");
-       writekeyvalues(kv, "/harddisk" CONFIG_ROOT "/main/settings");
-       freekeyvalues(kv);
-       
-       return 1;
-}
-
-int write_ethernet_configs(struct keyvalue *ethernetkv)
-{
-       /* Write out the network settings we got from a few mins ago. */
-       writekeyvalues(ethernetkv, "/harddisk" CONFIG_ROOT "/ethernet/settings");
-       return 1;
-}
-
-/* Taken from the cdrom one. */
-int getpassword(char *password, char *text)
-{
-       char *values[] = {      NULL, NULL, NULL };     /* pointers for the values. */
-       struct newtWinEntry entries[] =
-       { 
-               { ctr[TR_PASSWORD_PROMPT], &values[0], 2 },
-               { ctr[TR_AGAIN_PROMPT], &values[1], 2 },
-               { NULL, NULL, 0 }
-       };
-       char title[STRING_SIZE];
-       int rc;
-       int done;
-       
-       do
-       {
-               done = 1;
-               sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);
-               rc = newtWinEntries(title, text,
-                       50, 5, 5, 20, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);
-               
-               if (rc != 2)
-               {
-                       if (strlen(values[0]) == 0 || strlen(values[1]) == 0)
-                       {
-                               errorbox(ctr[TR_PASSWORD_CANNOT_BE_BLANK]);
-                               done = 0;
-                               strcpy(values[0], "");
-                               strcpy(values[1], "");                          
-                       }
-                       else if (strcmp(values[0], values[1]) != 0)
-                       {
-                               errorbox(ctr[TR_PASSWORDS_DO_NOT_MATCH]);
-                               done = 0;
-                               strcpy(values[0], "");
-                               strcpy(values[1], "");                                  
-                       }
-               }
-       }
-       while (!done);
-
-       strncpy(password, values[0], STRING_SIZE);
-
-       if (values[0]) free(values[0]);
-       if (values[1]) free(values[1]);
-
-       return rc;
-}
-       
diff --git a/src/install+setup/install/install.h b/src/install+setup/install/install.h
deleted file mode 100644 (file)
index a6e110f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* SmoothWall install program.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence.  See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * Main include file.
- * 
- */
-
-#include "../libsmooth/libsmooth.h"
-
-#define IDE_EMPTY 0
-#define IDE_CDROM 1
-#define IDE_HD 2
-#define IDE_UNKNOWN 3
-
-/* CDROMS and harddisks. */
-struct devparams
-{
-       char devnode_disk[30];          // when single partition is addressed
-       char devnode_part[30];          // when the RAID partition is addressed
-       char devnode_disk_run[30];      // the same dev but after installation 
-       char devnode_part_run[30];
-       char modulename[STRING_SIZE];
-       char options[STRING_SIZE];
-};
-
-/* config.c */
-int write_disk_configs(struct devparams *dp);
-int write_lang_configs( char *lang);
-int write_ethernet_configs(struct keyvalue *ethernetkv);
-
-/* unattended.c */
-int unattended_setup(struct keyvalue *unattendedkv);
diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c
deleted file mode 100644 (file)
index 309e006..0000000
+++ /dev/null
@@ -1,633 +0,0 @@
-
-/* SmoothWall install program.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence.  See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * Contains main entry point, and misc functions.6
- * 
- */
-
-#include "install.h"
-#define _GNU_SOURCE
-#define INST_FILECOUNT 21000
-#define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
-#define LICENSE_FILE   "/cdrom/COPYING"
-
-#define EXT2 0
-#define EXT3 1
-#define EXT4 2
-#define REISERFS 3
-
-FILE *flog = NULL;
-char *mylog;
-
-char **ctr;
-
-extern char url[STRING_SIZE];
-
-struct  nic  nics[20] = { { "" , "" , "" } }; // only defined for compile
-struct knic knics[20] = { { "" , "" , "" , "" } }; // only defined for compile
-
-extern char *en_tr[];
-extern char *es_tr[];
-extern char *de_tr[];
-extern char *fr_tr[];
-extern char *nl_tr[];
-extern char *pl_tr[];
-extern char *ru_tr[];
-extern char *tr_tr[];
-
-int main(int argc, char *argv[])
-{
-
-       char discl_msg[40000] = "Disclaimer\n";
-
-       char *langnames[] = { "Deutsch", "English", "Français", "Español", "Nederlands", "Polski", "Русский", "Türkçe", NULL };
-       char *shortlangnames[] = { "de", "en", "fr", "es", "nl", "pl", "ru", "tr", NULL };
-       char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, nl_tr, pl_tr, ru_tr, tr_tr, NULL };
-       char hdletter;
-       char harddrive[30], sourcedrive[5];     /* Device holder. */
-       char harddrive_info[STRING_SIZE];       /* Additional infos about target */
-       struct devparams hdparams, cdromparams; /* Params for CDROM and HD */
-       int rc = 0;
-       char commandstring[STRING_SIZE];
-       char mkfscommand[STRING_SIZE];
-       char *fstypes[] = { "ext2", "ext3", "ext4", "ReiserFS", NULL };
-       int fstype = EXT4;
-       int choice;
-       int i;
-       int found = 0;
-       char shortlangname[10];
-       char message[1000];
-       char title[STRING_SIZE];
-       int allok = 0;
-       int allok_fastexit=0;
-       int raid_disk = 0;
-       struct keyvalue *ethernetkv = initkeyvalues();
-       FILE *handle, *cmdfile, *copying;
-       char line[STRING_SIZE];
-       char string[STRING_SIZE];
-       long memory = 0, disk = 0, free;
-       long system_partition, boot_partition, root_partition, swap_file;
-       int scsi_disk = 0;
-       char *yesnoharddisk[3]; //      char *yesnoharddisk = { "NO", "YES", NULL };
-               
-       int unattended = 0;
-       int serialconsole = 0;
-       struct keyvalue *unattendedkv = initkeyvalues();
-       int hardyn = 0;
-       char restore_file[STRING_SIZE] = "";
-
-       setlocale (LC_ALL, "");
-       sethostname( SNAME , 10);
-
-       memset(&hdparams, 0, sizeof(struct devparams));
-       memset(&cdromparams, 0, sizeof(struct devparams));
-
-       /* Log file/terminal stuff. */
-       if (argc >= 2)
-       {               
-               if (!(flog = fopen(argv[1], "w+")))
-                       return 0;
-       }
-       else
-               return 0;
-       
-       mylog = argv[1];
-       
-       fprintf(flog, "Install program started.\n");
-               
-       newtInit();
-       newtCls();
-
-       newtDrawRootText(14, 0, NAME " " VERSION " - " SLOGAN );
-       sprintf (title, "%s %s - %s", NAME, VERSION, SLOGAN);
-
-       if (! (cmdfile = fopen("/proc/cmdline", "r")))
-       {
-               fprintf(flog, "Couldn't open commandline: /proc/cmdline\n");
-       } else {
-               fgets(line, STRING_SIZE, cmdfile);
-               
-               // check if we have to make an unattended install
-               if (strstr (line, "unattended") != NULL) {
-                   unattended = 1;
-                   runcommandwithstatus("/bin/sleep 10", "WARNING: Unattended installation will start in 10 seconds...");
-               }               
-               // check if we have to patch for serial console
-               if (strstr (line, "console=ttyS0") != NULL) {
-                   serialconsole = 1;
-               }
-       }
-
-       // Load common modules
-       mysystem("/sbin/modprobe vfat"); // USB key
-       
-       /* German is the default */
-       for (choice = 0; langnames[choice]; choice++)
-       {
-               if (strcmp(langnames[choice], "English") == 0)
-                       break;
-       }
-       if (!langnames[choice])
-               goto EXIT;
-
-       if (!unattended) {
-           rc = newtWinMenu("Language selection", "Select the language you wish to use for the " NAME ".", 50, 5, 5, 8,
-                   langnames, &choice, "Ok", NULL);
-       }
-
-       ctr = langtrs[choice];
-       strcpy(shortlangname, shortlangnames[choice]);
-
-       newtPushHelpLine(ctr[TR_HELPLINE]);
-
-       if (!unattended) {
-               sprintf(message, ctr[TR_WELCOME], NAME);
-               newtWinMessage(title, ctr[TR_OK], message);
-       }
-
-       mysystem("/bin/mountsource.sh");
-
-       if ((handle = fopen("/tmp/source_device", "r")) == NULL) {
-               newtWinMessage(title, ctr[TR_OK], ctr[TR_NO_LOCAL_SOURCE]);
-               runcommandwithstatus("/bin/downloadsource.sh",ctr[TR_DOWNLOADING_ISO]);
-               if ((handle = fopen("/tmp/source_device", "r")) == NULL) {
-                       errorbox(ctr[TR_DOWNLOAD_ERROR]);
-                       goto EXIT;
-               }
-       }
-
-       fgets(sourcedrive, 5, handle);
-       fprintf(flog, "Source drive: %s\n", sourcedrive);
-       fclose(handle);
-
-       if (!unattended) {
-               // Read the license file.
-               if (!(copying = fopen(LICENSE_FILE, "r"))) {
-                       sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE);
-                       fprintf(flog, discl_msg);
-               } else {
-                       fread(discl_msg, 1, 40000, copying);
-                       fclose(copying);
-
-                       if (disclaimerbox(discl_msg)==0) {
-                               errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]);
-                               goto EXIT;
-                       }
-               }
-       }
-
-       i = 0;
-       while (found == 0) {
-               i++;
-               fprintf(flog, "Harddisk scan pass %i\n", i);
-
-               switch (mysystem("/bin/mountdest.sh") % 255) {
-                       case 0: // Found IDE disk
-                               scsi_disk = 0;
-                               raid_disk = 0;
-                               found = 1;
-                               break;
-                       case 1: // Found SCSI disk
-                               scsi_disk = 1;
-                               raid_disk = 0;
-                               found = 1;
-                               break;
-                       case 2: // Found RAID disk
-                               scsi_disk = 0;
-                               raid_disk= 1;
-                               found = 1;
-                               break;
-                       case 10: // No harddisk found
-                               errorbox(ctr[TR_NO_HARDDISK]);
-                               goto EXIT;
-               }
-       }
-
-       if ((handle = fopen("/tmp/dest_device", "r")) == NULL) {
-               errorbox(ctr[TR_NO_HARDDISK]);
-               goto EXIT;
-       }
-       fgets(harddrive, 30, handle);
-       fclose(handle);
-       if ((handle = fopen("/tmp/dest_device_info", "r")) == NULL) {
-               sprintf(harddrive_info, "%s", harddrive);
-       }
-       fgets(harddrive_info, 70, handle);
-       fclose(handle);
-
-                       
-       /* load unattended configuration */
-       if (unattended) {
-           fprintf(flog, "unattended: Reading unattended.conf\n");
-
-           (void) readkeyvalues(unattendedkv, UNATTENDED_CONF);
-           findkey(unattendedkv, "RESTORE_FILE", restore_file);            
-       }
-       
-       /* Make the hdparms struct and print the contents.
-          With USB-KEY install and SCSI disk, while installing, the disk
-          is named 'sdb,sdc,...' (following keys)
-          On reboot, it will become 'sda'
-          To avoid many test, all names are built in the struct.
-       */
-       sprintf(hdparams.devnode_disk, "/dev/%s", harddrive);
-       /* Address the partition or raid partition (eg dev/sda or /dev/sdap1 */
-       sprintf(hdparams.devnode_part, "/dev/%s%s", harddrive,raid_disk ? "p" : "");
-       /* Now the names after the machine is booted. Only scsi is affected
-          and we only install on the first scsi disk. */
-
-       fprintf(flog, "Destination drive: %s\n", hdparams.devnode_disk);
-       
-       sprintf(message, ctr[TR_PREPARE_HARDDISK], harddrive_info);
-       if (unattended) {
-           hardyn = 1;
-       } else {
-               yesnoharddisk[0] = ctr[TR_NO];
-               yesnoharddisk[1] = ctr[TR_YES];
-               yesnoharddisk[2] = NULL;
-       }
-
-       while (! hardyn) {
-               rc = newtWinMenu(title, message,
-                                50, 5, 5, 6, yesnoharddisk,
-                                &hardyn, ctr[TR_OK],
-                                ctr[TR_CANCEL], NULL);
-               if (rc == 2)
-                       goto EXIT;
-       }
-       if (rc == 2)
-               goto EXIT;
-
-       fstypes[0]=ctr[TR_EXT2FS_DESCR];
-       fstypes[1]=ctr[TR_EXT3FS_DESCR];
-       fstypes[2]=ctr[TR_EXT4FS_DESCR];
-       fstypes[3]=ctr[TR_REISERFS_DESCR];
-       fstypes[4]=NULL;
-
-       if (!unattended) {              
-               sprintf(message, ctr[TR_CHOOSE_FILESYSTEM]);
-               rc = newtWinMenu( ctr[TR_CHOOSE_FILESYSTEM], message,
-                       50, 5, 5, 6, fstypes, &fstype, ctr[TR_OK],
-                       ctr[TR_CANCEL], NULL);
-       } else {
-           rc = 1;
-           fstype = EXT4;
-       }
-       if (rc == 2)
-               goto EXIT;
-
-       /* Calculate amount of memory in machine */
-        if ((handle = fopen("/proc/meminfo", "r")))
-        {
-            while (fgets(line, STRING_SIZE-1, handle)) {
-                if (sscanf (line, "MemTotal: %s kB", string)) {
-                    memory = atoi(string) / 1024 ;
-                }
-            }
-            fclose(handle);
-        }
-
-       /* Partition, mkswp, mkfs.
-        * before partitioning, first determine the sizes of each
-        * partition.  In order to do that we need to know the size of
-        * the disk. 
-        */
-       /* Don't use mysystem here so we can redirect output */
-       sprintf(commandstring, "/sbin/sfdisk -s /dev/%s > /tmp/disksize 2> /dev/null", harddrive);
-       system(commandstring);
-
-       /* Calculate amount of disk space */
-       if ((handle = fopen("/tmp/disksize", "r"))) {
-               fgets(line, STRING_SIZE-1, handle);
-               if (sscanf (line, "%s", string)) {
-                       disk = atoi(string) / 1024;
-               }
-               fclose(handle);
-       }
-       
-       fprintf(flog, "Disksize = %ld, memory = %ld", disk, memory);
-       
-        /* Calculating Swap-Size dependend of Ram Size */
-       if (memory <= 256)
-               swap_file = 128;
-       else if (memory <= 1024 && memory > 256)
-               swap_file = 256;
-       else 
-               swap_file = memory / 4;
-       
-  /* Calculating Root-Size dependend of Max Disk Space */
-  if ( disk < 2048 )
-               root_partition = 1024;
-       else if ( disk >= 2048 && disk <= 3072 )
-               root_partition = 1536;
-       else 
-               root_partition = 2048;
-               
-       
-  /* Calculating the amount of free space */
-       boot_partition = 64; /* in MB */
-       system_partition = disk - ( root_partition + swap_file + boot_partition );
-       
-       fprintf(flog, ", boot = %ld, swap = %ld, mylog = %ld, root = %ld\n",
-       boot_partition, swap_file, system_partition, root_partition);
-       rc = 0;
-
-       if ( (!unattended) && (((disk - (root_partition + swap_file + boot_partition)) < 256 ) && ((disk - (root_partition + boot_partition )) > 256)) ) {
-   rc = newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL], ctr[TR_CONTINUE_NO_SWAP]);
-    if (rc == 1){
-      swap_file = 0;
-      system_partition = disk - ( root_partition + swap_file + boot_partition );
-      fprintf(flog, "Changing Swap Size to 0 MB.\n");
-    }
-    else if (rc == 2){
-    fprintf(flog, "Disk is too small.\n");
-    errorbox(ctr[TR_DISK_TOO_SMALL]);goto EXIT;
-    }
-  } 
-  else if (disk - (root_partition + swap_file + boot_partition) >= 256) {
-  
-  }
-  else {
-   fprintf(flog, "Disk is too small.\n");
-   errorbox(ctr[TR_DISK_TOO_SMALL]);goto EXIT;
-  }
-        
-       handle = fopen("/tmp/partitiontable", "w");
-
-       /* Make swapfile */
-  if (swap_file) {
-     fprintf(handle, ",%ld,L,*\n,%ld,S,\n,%ld,L,\n,,L,\n",
-     boot_partition, swap_file, root_partition);
-  } else {
-     fprintf(handle, ",%ld,L,*\n,0,0,\n,%ld,L,\n,,L,\n",
-     boot_partition, root_partition);
-  }
-
-       fclose(handle);
-
-       if (disk < 2097150) {
-               // <2TB use sfdisk and normal mbr
-               snprintf(commandstring, STRING_SIZE, "/sbin/sfdisk -L -uM %s < /tmp/partitiontable", hdparams.devnode_disk);
-       } else {
-               // >2TB use parted with gpt
-               snprintf(commandstring, STRING_SIZE, "/usr/sbin/parted -s %s mklabel gpt mkpart boot ext2 1M 64M mkpart swap linux-swap 64M 1000M mkpart root ext4 1000M 5000M mkpart var ext4 5000M 100%% disk_set pmbr_boot on", hdparams.devnode_disk);
-       }
-
-       if (runcommandwithstatus(commandstring, ctr[TR_PARTITIONING_DISK]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_PARTITION]);
-               goto EXIT;
-       }
-
-       if (fstype == EXT2) {
-//             mysystem("/sbin/modprobe ext2");
-               sprintf(mkfscommand, "/sbin/mke2fs -T ext2");
-       } else if (fstype == REISERFS) {
-               mysystem("/sbin/modprobe reiserfs");
-               sprintf(mkfscommand, "/sbin/mkreiserfs -f");
-       } else if (fstype == EXT3) {
-//             mysystem("/sbin/modprobe ext3");
-               sprintf(mkfscommand, "/sbin/mke2fs -T ext3");
-       } else if (fstype == EXT4) {
-//             mysystem("/sbin/modprobe ext4");
-               sprintf(mkfscommand, "/sbin/mke2fs -T ext4");
-       }
-
-       snprintf(commandstring, STRING_SIZE, "/sbin/mke2fs -T ext2 -I 128 %s1", hdparams.devnode_part);
-       if (runcommandwithstatus(commandstring, ctr[TR_MAKING_BOOT_FILESYSTEM]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM]);
-               goto EXIT;
-       }
-
-       if (swap_file) {
-               snprintf(commandstring, STRING_SIZE, "/sbin/mkswap %s2", hdparams.devnode_part);
-               if (runcommandwithstatus(commandstring, ctr[TR_MAKING_SWAPSPACE]))
-               {
-                       errorbox(ctr[TR_UNABLE_TO_MAKE_SWAPSPACE]);
-                       goto EXIT;
-               }
-       }
-
-       snprintf(commandstring, STRING_SIZE, "%s %s3", mkfscommand, hdparams.devnode_part);
-       if (runcommandwithstatus(commandstring, ctr[TR_MAKING_ROOT_FILESYSTEM]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM]);
-               goto EXIT;
-       }
-
-       snprintf(commandstring, STRING_SIZE, "%s %s4", mkfscommand, hdparams.devnode_part);     
-       if (runcommandwithstatus(commandstring, ctr[TR_MAKING_LOG_FILESYSTEM]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_MAKE_LOG_FILESYSTEM]);
-               goto EXIT;
-       }
-
-       snprintf(commandstring, STRING_SIZE, "/bin/mount %s3 /harddisk", hdparams.devnode_part);
-       if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_ROOT_FILESYSTEM]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM]);
-               goto EXIT;
-       }
-
-       mkdir("/harddisk/boot", S_IRWXU|S_IRWXG|S_IRWXO);
-       mkdir("/harddisk/var", S_IRWXU|S_IRWXG|S_IRWXO);
-       mkdir("/harddisk/var/log", S_IRWXU|S_IRWXG|S_IRWXO);
-
-       snprintf(commandstring, STRING_SIZE, "/bin/mount %s1 /harddisk/boot", hdparams.devnode_part);
-       if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_BOOT_FILESYSTEM]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM]);
-               goto EXIT;
-       }
-       if (swap_file) {
-               snprintf(commandstring, STRING_SIZE, "/sbin/swapon %s2", hdparams.devnode_part);
-               if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_SWAP_PARTITION]))
-               {
-                       errorbox(ctr[TR_UNABLE_TO_MOUNT_SWAP_PARTITION]);
-                       goto EXIT;
-               }
-       }
-       snprintf(commandstring, STRING_SIZE, "/bin/mount %s4 /harddisk/var", hdparams.devnode_part);
-       if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_LOG_FILESYSTEM]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM]);
-               goto EXIT;
-       }
-
-       snprintf(commandstring, STRING_SIZE,
-               "/bin/tar -C /harddisk  -xvf /cdrom/" SNAME "-" VERSION ".tlz --lzma 2>/dev/null");
-       
-       if (runcommandwithprogress(60, 4, title, commandstring, INST_FILECOUNT,
-               ctr[TR_INSTALLING_FILES]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_INSTALL_FILES]);
-               goto EXIT;
-       }
-       
-       /* Save language und local settings */
-       write_lang_configs(shortlangname);
-
-       /* mount proc filesystem */
-       mysystem("mkdir /harddisk/proc");
-       mysystem("/bin/mount --bind /proc /harddisk/proc");
-       mysystem("/bin/mount --bind /dev  /harddisk/dev");
-       mysystem("/bin/mount --bind /sys  /harddisk/sys");
-
-       /* Build cache lang file */
-       snprintf(commandstring, STRING_SIZE, "/usr/sbin/chroot /harddisk /usr/bin/perl -e \"require '" CONFIG_ROOT "/lang.pl'; &Lang::BuildCacheLang\"");
-       if (runcommandwithstatus(commandstring, ctr[TR_INSTALLING_LANG_CACHE]))
-       {
-               errorbox(ctr[TR_UNABLE_TO_INSTALL_LANG_CACHE]);
-               goto EXIT;
-       }
-
-       /* Update /etc/fstab */
-       snprintf(commandstring, STRING_SIZE, "/bin/sed -i -e \"s#DEVICE1#UUID=$(/sbin/blkid %s1 -sUUID | /usr/bin/cut -d'\"' -f2)#g\" /harddisk/etc/fstab", hdparams.devnode_part);
-       system(commandstring);
-       snprintf(commandstring, STRING_SIZE, "/bin/sed -i -e \"s#DEVICE2#UUID=$(/sbin/blkid %s2 -sUUID | /usr/bin/cut -d'\"' -f2)#g\" /harddisk/etc/fstab", hdparams.devnode_part);
-       system(commandstring);
-       snprintf(commandstring, STRING_SIZE, "/bin/sed -i -e \"s#DEVICE3#UUID=$(/sbin/blkid %s3 -sUUID | /usr/bin/cut -d'\"' -f2)#g\" /harddisk/etc/fstab", hdparams.devnode_part);
-       system(commandstring);
-       snprintf(commandstring, STRING_SIZE, "/bin/sed -i -e \"s#DEVICE4#UUID=$(/sbin/blkid %s4 -sUUID | /usr/bin/cut -d'\"' -f2)#g\" /harddisk/etc/fstab", hdparams.devnode_part);
-       system(commandstring);
-
-       if (fstype == EXT2) {
-               replace("/harddisk/etc/fstab", "FSTYPE", "ext2");
-               replace("/harddisk/boot/grub/grub.conf", "MOUNT", "ro");
-       } else if (fstype == REISERFS) {
-               replace("/harddisk/etc/fstab", "FSTYPE", "reiserfs");
-               replace("/harddisk/boot/grub/grub.conf", "MOUNT", "ro");
-       } else if (fstype == EXT3) {
-               replace("/harddisk/etc/fstab", "FSTYPE", "ext3");
-               replace("/harddisk/boot/grub/grub.conf", "MOUNT", "ro");
-       } else if (fstype == EXT4) {
-               replace("/harddisk/etc/fstab", "FSTYPE", "ext4");
-               replace("/harddisk/boot/grub/grub.conf", "MOUNT", "ro");
-       }
-
-       replace("/harddisk/boot/grub/grub.conf", "KVER", KERNEL_VERSION);
-
-       snprintf(commandstring, STRING_SIZE, "/bin/sed -i -e \"s#root=ROOT#root=UUID=$(/sbin/blkid %s3 -sUUID | /usr/bin/cut -d'\"' -f2)#g\" /harddisk/boot/grub/grub.conf", hdparams.devnode_part);
-       system(commandstring);
-
-       mysystem("ln -s grub.conf /harddisk/boot/grub/menu.lst");
-
-       system("/bin/sed -e 's#/harddisk#/#g' -e 's#//#/#g'  < /proc/mounts > /harddisk/etc/mtab");
-
-       /*
-        * Generate device.map to help grub finding the device to install itself on.
-        */
-       FILE *f = NULL;
-       if (f = fopen("/harddisk/boot/grub/device.map", "w")) {
-               fprintf(f, "(hd0) %s\n", hdparams.devnode_disk);
-               fclose(f);
-       }
-
-       snprintf(commandstring, STRING_SIZE, 
-                "/usr/sbin/chroot /harddisk /usr/sbin/grub-install --no-floppy %s", hdparams.devnode_disk);
-       if (runcommandwithstatus(commandstring, ctr[TR_INSTALLING_GRUB])) {
-               errorbox(ctr[TR_UNABLE_TO_INSTALL_GRUB]);
-               goto EXIT;
-       }
-
-       /* Serial console ? */
-       if (serialconsole) {
-               /* grub */
-               replace("/harddisk/boot/grub/grub.conf", "splashimage", "#splashimage");
-               replace("/harddisk/boot/grub/grub.conf", "#serial", "serial");
-               replace("/harddisk/boot/grub/grub.conf", "#terminal", "terminal");
-               replace("/harddisk/boot/grub/grub.conf", " panic=10 ", " console=ttyS0,115200n8 panic=10 ");
-
-               /*inittab*/
-               replace("/harddisk/etc/inittab", "1:2345:respawn:", "#1:2345:respawn:");
-               replace("/harddisk/etc/inittab", "2:2345:respawn:", "#2:2345:respawn:");
-               replace("/harddisk/etc/inittab", "3:2345:respawn:", "#3:2345:respawn:");
-               replace("/harddisk/etc/inittab", "4:2345:respawn:", "#4:2345:respawn:");
-               replace("/harddisk/etc/inittab", "5:2345:respawn:", "#5:2345:respawn:");
-               replace("/harddisk/etc/inittab", "6:2345:respawn:", "#6:2345:respawn:");
-               replace("/harddisk/etc/inittab", "#7:2345:respawn:", "7:2345:respawn:");
-       }
-
-       /* Set marker that the user has already accepted the gpl */
-       mysystem("/usr/bin/touch /harddisk/var/ipfire/main/gpl_accepted");
-
-       /* Copy restore file from cdrom */
-       if (unattended && (strlen(restore_file) > 0)) {
-               fprintf(flog, "unattended: Copy restore file\n");
-               snprintf(commandstring, STRING_SIZE, 
-                       "cp /cdrom/%s /harddisk/var/ipfire/backup", restore_file);
-               mysystem(commandstring);
-       }
-       
-       mysystem("umount /cdrom");
-       snprintf(commandstring, STRING_SIZE, "/usr/bin/eject /dev/%s", sourcedrive);
-       mysystem(commandstring);
-
-       if (!unattended) {
-               sprintf(message, ctr[TR_CONGRATULATIONS_LONG],
-                               NAME, SNAME, NAME);
-               newtWinMessage(ctr[TR_CONGRATULATIONS], ctr[TR_PRESS_OK_TO_REBOOT], message);
-       }
-
-       allok = 1;
-
-EXIT:
-       fprintf(flog, "Install program ended.\n");      
-
-       if (!(allok))
-               newtWinMessage(title, ctr[TR_OK], ctr[TR_PRESS_OK_TO_REBOOT]);  
-       
-       freekeyvalues(ethernetkv);
-
-       if (allok && !allok_fastexit)
-       {
-               if (unattended) {
-                       fprintf(flog, "Entering unattended setup\n");
-                       if (unattended_setup(unattendedkv)) {
-                               snprintf(commandstring, STRING_SIZE, "/bin/sleep 10");
-                               runcommandwithstatus(commandstring, "Unattended installation finished, system will reboot");
-                       } else {
-                               errorbox("Unattended setup failed.");
-                               goto EXIT;
-                       }
-               }
-
-               fflush(flog);
-               fclose(flog);
-               newtFinished();
-
-               if (system("/bin/umount /harddisk/proc"))
-                       printf("Unable to umount /harddisk/proc.\n"); 
-       } else {
-               fflush(flog);
-               fclose(flog);
-               newtFinished();
-       }
-
-       fcloseall();
-
-       if (swap_file) {
-               snprintf(commandstring, STRING_SIZE, "/bin/swapoff %s2", hdparams.devnode_part);
-       }
-
-       newtFinished();
-
-       system("/bin/umount /harddisk/proc >/dev/null 2>&1");
-       system("/bin/umount /harddisk/dev >/dev/null 2>&1");
-       system("/bin/umount /harddisk/sys >/dev/null 2>&1");
-
-       system("/bin/umount /harddisk/var >/dev/null 2>&1");
-       system("/bin/umount /harddisk/boot >/dev/null 2>&1");
-       system("/bin/umount /harddisk >/dev/null 2>&1");
-
-       if (!(allok))
-               system("/etc/halt");
-
-       return 0;
-}
diff --git a/src/install+setup/install/mountsource.sh b/src/install+setup/install/mountsource.sh
deleted file mode 100644 (file)
index c335020..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/sh
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# 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 General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-#lfs patch source here...
-version=FullIPFireVersion
-#
-
-echo "Scanning source media"
-
-# scan all Block devices
-for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
-do
-               mount /dev/${DEVICE} /cdrom 2> /dev/null
-               if [ -n "$(ls /cdrom/${version}.media 2>/dev/null)" ]; then
-                       echo -n ${DEVICE} > /tmp/source_device
-                       echo "Found ${version} on ${DEVICE}"
-                       exit 0
-               else
-                       echo "not found on ${DEVICE} - SKIP"
-               fi
-               umount /cdrom 2> /dev/null
-done
-
-# scan all Partitions on block devices
-for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
-do
-       for DEVICEP in $(ls /dev/${DEVICE}? 2>/dev/null | sed "s/\/dev\///");do
-               mount /dev/${DEVICEP} /cdrom 2> /dev/null
-               if [ -n "$(ls /cdrom/${version}.media 2>/dev/null)" ]; then
-                       echo -n ${DEVICEP} > /tmp/source_device
-                       echo "Found ${version} on ${DEVICEP}"
-                       exit 0
-               else
-                       echo "not found on ${DEVICEP} - SKIP"
-               fi
-               umount /cdrom 2> /dev/null
-       done
-done
-
-# scan all Partitions on raid/mmc devices
-for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
-do
-       for DEVICEP in $(ls /dev/${DEVICE}p? 2>/dev/null | sed "s/\/dev\///");do
-               mount /dev/${DEVICEP} /cdrom 2> /dev/null
-               if [ -n "$(ls /cdrom/${version}.media 2>/dev/null)" ]; then
-                       echo -n ${DEVICEP} > /tmp/source_device
-                       echo "Found ${version} on ${DEVICEP}"
-                       exit 0
-               else
-                       echo "not found on ${DEVICEP} - SKIP"
-               fi
-               umount /cdrom 2> /dev/null
-       done
-done
-
-exit 10
diff --git a/src/install+setup/libsmooth/langs.h.temp b/src/install+setup/libsmooth/langs.h.temp
deleted file mode 100644 (file)
index 16d45d0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SmoothWall libsmooth.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence.  See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * This is a template (basically just a header). langs.h is generated via
- * the Makefile, from lang_en.c.
- * 
- * $Id: langs.h.temp,v 1.4 2003/12/11 11:25:53 riddles Exp $
- * 
- */
-
-enum trstrings
-{
diff --git a/src/install+setup/libsmooth/libsmooth.h b/src/install+setup/libsmooth/libsmooth.h
deleted file mode 100644 (file)
index fc166b2..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/* SmoothWall libsmooth.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence.  See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * Contains prototypes for library functions.
- * 
- */
-
-#ifndef ___LIBSMOOTH_H
-#define ___LIBSMOOTH_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <wchar.h>
-#include <locale.h>
-#include <unistd.h>
-#include <sys/file.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <newt.h>
-#include <dirent.h>
-#include <sys/mount.h>
-
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <linux/cdrom.h>
-#include <sys/ioctl.h>
-
-#include "langs.h"
-
-#define STRING_SIZE 1024
-
-#define ADDRESS 0
-#define NETADDRESS 1
-#define NETMASK 2
-#define DHCP 3
-#define NETCHANGE_TOTAL 4
-
-#define SCANNED_NICS "/var/ipfire/ethernet/scanned_nics"
-#define SYSDIR "/sys/class/net"
-
-#define _GREEN_CARD_ 0
-#define _RED_CARD_ 1
-#define _ORANGE_CARD_ 2
-#define _BLUE_CARD_ 3
-
-struct keyvalue
-{
-       char key[STRING_SIZE];
-       char value[STRING_SIZE];
-       struct keyvalue *next;  
-};
-struct nic
-{
-       char driver[80];
-       char description[256];
-       char macaddr[20];
-       char nic[20];
-};
-
-struct knic
-{
-       char driver[80];
-       char description[256];
-       char macaddr[20];
-       char colour[20];
-};
-
-
-/* libsmooth.c */
-void reboot(void);
-void stripnl(char *s);
-int mysystem(char *command);
-void errorbox(char *message);
-int statuswindowscroll(int width, int height, char *title, char *text, ...);
-int disclaimerbox(char *message);
-void statuswindow(int width, int height, char *title, char *text, ...);
-int runcommandwithprogress(int width, int height, char *title, char *command,
-       int lines, char *text, ...);
-int runcommandwithstatus(char *command, char *message);
-int runhiddencommandwithstatus(char *command, char *message);
-int checkformodule(char *module); 
-int replace(char filename1[], char *from, char *to);
-char* get_version(void);
-                                
-/* netstuff.c */
-int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
-       char *defaultdhcphostname);
-int gettype(char *type);
-int setnetaddress(struct keyvalue *kv, char *colour);
-void networkdialogcallbacktype(newtComponent cm, void *data);
-int interfacecheck(struct keyvalue *kv, char *colour);
-int rename_nics(void);
-int init_knics(void);
-int create_udev(void);
-int scan_network_cards(void);
-int nicmenu(int colour);
-int clear_card_entry(int cards);
-int ask_clear_card_entry(int cards);
-int manualdriver(char *driver, char *driveroptions);
-         
-/* varval.c */
-struct keyvalue *initkeyvalues(void);
-void freekeyvalues(struct keyvalue *head);
-int readkeyvalues(struct keyvalue *head, char *filename);
-int writekeyvalues(struct keyvalue *head, char *filename);
-int findkey(struct keyvalue *head, char *key, char *value);
-void appendkeyvalue(struct keyvalue *head, char *key, char *value);
-void replacekeyvalue(struct keyvalue *head, char *key, char *value);
-
-#endif
-
diff --git a/src/install+setup/setup/setup.h b/src/install+setup/setup/setup.h
deleted file mode 100644 (file)
index e6a32a6..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* SmoothWall setup program.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence.  See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * Main include file.
- * 
- * $Id: setup.h,v 1.4 2003/12/11 11:25:54 riddles Exp $
- * 
- */
-
-#include "../libsmooth/libsmooth.h"
-
-/* hostname.c */
-int handlehostname(void);
-
-/* domainname.c */
-int handledomainname(void);
-
-/* networking.c */
-int handlenetworking(void);
-
-/* dhcp.c */
-int handledhcp(void);
-
-/* passwords.c */
-int handlerootpassword(void);
-int handlesetuppassword(void);
-int handleadminpassword(void);
-
-/* misc.c */
-int writehostsfiles(void);
-int handleisdn(void);
-
-/* keymap.c */
-int handlekeymap(void);
-
-/* timezone.c */
-int handletimezone(void);
diff --git a/src/installer/.tx/config b/src/installer/.tx/config
new file mode 100644 (file)
index 0000000..3bb34b4
--- /dev/null
@@ -0,0 +1,7 @@
+[main]
+host = https://www.transifex.com
+
+[ipfire.installer-legacy]
+file_filter = po/<lang>.po
+source_file = po/installer.pot
+source_lang = en
similarity index 92%
rename from src/install+setup/install/Makefile
rename to src/installer/Makefile
index 89106de2280311a9e462bd2e592007963d6e8684..928520e41f4357621bdb25ea6cc4ed3e0489f409 100644 (file)
 
 
 CC      = gcc 
-CFLAGS  = -Os -Wall
+CFLAGS  = -O2 -Wall
 INCLUDE =
 
 LD      = gcc
 LDFLAGS =
-LIBS    = -lnewt -lslang -lpci
+LIBS    = -lnewt -lslang -lpci -ludev -lblkid -lsmooth
 
 COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS)
 
@@ -33,16 +33,16 @@ LINK = $(LD) $(LDFLAGS)
 
 all : programs
 
-programs : install
+programs : installer
 
 clean :
        -rm -f *.o install core
 
 ######
 
-OBJS=main.o config.o ../libsmooth/libsmooth.o unattended.o
+OBJS=main.o unattended.o hw.o
 
-install: $(OBJS)
+installer: $(OBJS)
        $(LINK) $(OBJS) -o $@ $(LIBS)
 
 %.o : %.c
diff --git a/src/installer/Makefile.am b/src/installer/Makefile.am
new file mode 100644 (file)
index 0000000..259db06
--- /dev/null
@@ -0,0 +1,80 @@
+#  This file is part of the installer.
+#
+#  installer 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.
+
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+AM_MAKEFLAGS = --no-print-directory
+AUTOMAKE_OPTIONS = color-tests parallel-tests
+
+SUBDIRS = . po
+
+# remove targets if the command fails
+.DELETE_ON_ERROR:
+
+# keep intermediate files
+.SECONDARY:
+
+CLEANFILES =
+EXTRA_DIST =
+dracutmoduledir = $(prefix)/lib/dracut/modules.d/99installer
+
+AM_CPPFLAGS = \
+       -include $(top_builddir)/config.h \
+       -I $(top_srcdir)/include \
+       $(OUR_CPPFLAGS)
+
+AM_CFLAGS = $(OUR_CFLAGS)
+AM_LDFLAGS = $(OUR_LDFLAGS)
+
+bin_PROGRAMS = \
+       installer
+
+bin_SCRIPTS = \
+       downloadsource.sh
+
+#- installer -------------------------------------------------------------------
+
+installer_SOURCES = \
+       hw.c \
+       hw.h \
+       main.c \
+       unattended.c
+
+installer_CFLAGS = \
+       $(BLKID_CFLAGS) \
+       $(LIBSMOOTH_CFLAGS) \
+       $(PCI_CFLAGS) \
+       $(UDEV_CFLAGS)
+
+installer_LDADD = \
+       $(BLKID_LIBS) \
+       $(LIBSMOOTH_LIBS) \
+       $(NEWT_LIBS) \
+       $(PCI_LIBS) \
+       $(UDEV_LIBS)
+
+dracutmodule_DATA = \
+       dracut-module/70-dhcpcd.exe \
+       dracut-module/fake-root.sh \
+       dracut-module/module-setup.sh \
+       dracut-module/run-installer.sh
+
+#-------------------------------------------------------------------------------
+
+substitutions = \
+       '|PACKAGE_NAME=$(PACKAGE_NAME)|' \
+       '|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \
+       '|prefix=$(prefix)|' \
+       '|exec_prefix=$(exec_prefix)|' \
+       '|libdir=$(libdir)|' \
+       '|includedir=$(includedir)|'
+
+SED_PROCESS = \
+       $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+       $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(substitutions)))) < $< > $@
+
+%.pc: %.pc.in Makefile
+       $(SED_PROCESS)
diff --git a/src/installer/autogen.sh b/src/installer/autogen.sh
new file mode 100755 (executable)
index 0000000..3065488
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+autoreconf --force --install -I m4
diff --git a/src/installer/configure.ac b/src/installer/configure.ac
new file mode 100644 (file)
index 0000000..da968f6
--- /dev/null
@@ -0,0 +1,99 @@
+#  This file is part of the installer.
+#
+#  installer 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.
+
+AC_PREREQ([2.64])
+
+AC_INIT([installer],
+       [001],
+       [],
+       [installer],
+       [http://git.ipfire.org/?p=ipfire-2.x.git;a=summary])
+
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR([build-aux])
+
+AM_INIT_AUTOMAKE([
+       foreign
+       1.11
+       -Wall
+       -Wno-portability
+       silent-rules
+       tar-pax
+       no-dist-gzip
+       dist-xz
+       subdir-objects
+])
+AM_SILENT_RULES([yes])
+
+LT_PREREQ(2.2)
+LT_INIT([disable-static])
+
+AC_PROG_SED
+
+AC_PROG_CC
+AC_PROG_CC_C99
+AC_PROG_CC_C_O
+
+AC_PATH_PROG([M4], [m4])
+
+# Gettext
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.18])
+AC_CHECK_HEADERS([libintl.h])
+
+# This makes sure pkg.m4 is available.
+m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
+
+save_LIBS="$LIBS"
+
+# newt
+LIBS=
+AC_SEARCH_LIBS([newtWinMenu], [newt], [], [AC_MSG_ERROR([*** newt library not found])])
+NEWT_LIBS="$LIBS"
+AC_SUBST(NEWT_LIBS)
+
+LIBS="$save_LIBS"
+
+PKG_CHECK_MODULES(BLKID, [blkid])
+PKG_CHECK_MODULES(PCI, [libpci])
+PKG_CHECK_MODULES(LIBSMOOTH, [libsmooth])
+PKG_CHECK_MODULES(UDEV, [libudev])
+
+AC_ARG_WITH([distro-name],
+       AS_HELP_STRING([--with-distro-name] [The name of the distribution]),
+       AC_DEFINE_UNQUOTED([NAME], "$withval", [The name of the distribution]),
+       AC_MSG_ERROR([*** you need to set the name with --with-distro-name=]))
+
+AC_ARG_WITH([distro-sname],
+       AS_HELP_STRING([--with-distro-sname] [The short name of the distribution]),
+       AC_DEFINE_UNQUOTED([SNAME], "$withval", [The sname of the distribution]),
+       AC_MSG_ERROR([*** you need to set the sname with --with-distro-sname=]))
+
+AC_ARG_WITH([distro-slogan],
+       AS_HELP_STRING([--with-distro-slogan] [The slogan of the distribution]),
+       AC_DEFINE_UNQUOTED([SLOGAN], "$withval", [The slogan of the distribution]),
+       AC_MSG_ERROR([*** you need to set the slogan with --with-distro-slogan=]))
+
+AC_ARG_WITH([config-root],
+       AS_HELP_STRING([--with-distro-config-root] [The configuration directory]),
+       AC_DEFINE_UNQUOTED([CONFIG_ROOT], "$withval", [The config-root]),
+       AC_MSG_ERROR([*** you need to set CONFIG_ROOT with --with-config-root=]))
+
+AC_CONFIG_FILES([
+       Makefile
+       po/Makefile.in
+])
+
+AC_OUTPUT
+AC_MSG_RESULT([
+       $PACKAGE_NAME $VERSION
+
+       CFLAGS:                 ${OUR_CFLAGS} ${CFLAGS}
+       CPPFLAGS:               ${OUR_CPPFLAGS} ${CPPFLAGS}
+       LDFLAGS:                ${OUR_LDFLAGS} ${LDFLAGS}
+])
similarity index 90%
rename from src/install+setup/install/downloadsource.sh
rename to src/installer/downloadsource.sh
index 5c6360dca16bfc540354bc70dd1818bc96593968..1f6c432dd826b72764a5be9f39633a5736e58906 100644 (file)
@@ -47,13 +47,8 @@ echo "Checking download..."
 md5_file=`md5sum /tmp/download.iso | cut -d" " -f1`
 md5_down=`cat /tmp/download.iso.md5 | cut -d" " -f1`
 if [ "$md5_file" == "$md5_down" ]; then
-       mount /tmp/download.iso -o loop /cdrom 2> /dev/null
-       if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then
-               echo -n "null" > /tmp/source_device
-               echo "Found tarball in /tmp/download.iso"
-               exit 0
-       fi
-       umount /cdrom 2> /dev/null
+       echo -n "/tmp/download.iso" > /tmp/source_device
+       exit 0
 fi
 echo "Error - SKIP"
 exit 10
diff --git a/src/installer/dracut-module/70-dhcpcd.exe b/src/installer/dracut-module/70-dhcpcd.exe
new file mode 100755 (executable)
index 0000000..4100fc9
--- /dev/null
@@ -0,0 +1,32 @@
+#/bin/bash
+########################################################################
+# Begin
+#
+# Description : DHCP Client Script (initrd version)
+#
+# Authors     : Arne Fitzenreiter - arne_f@ipfire.org
+#
+# Version     : 02.00
+#
+# Notes       : 
+#
+########################################################################
+
+dhcpcd_up()
+{
+       set | grep "^new_" | sed "s|^new_||g" | \
+       sed "s|'||g" | \
+       sort > /var/ipfire/dhcpc/dhcpcd-$interface.info
+
+       DNS=`grep "domain_name_servers" /var/ipfire/dhcpc/dhcpcd-$interface.info | cut -d"=" -f2`
+       DNS1=`echo $DNS | cut -d" " -f1`
+       DNS2=`echo $DNS | cut -d" " -f2`
+
+       echo "nameserver $DNS1" > /etc/resolv.conf
+       echo "nameserver $DNS2" >> /etc/resolv.conf
+
+}
+
+case "$reason" in
+BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)       dhcpcd_up;;
+esac
diff --git a/src/installer/dracut-module/fake-root.sh b/src/installer/dracut-module/fake-root.sh
new file mode 100644 (file)
index 0000000..7c41f35
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# Fake root so dracut will start our installer
+root="installer"
+rootok=1
diff --git a/src/installer/dracut-module/module-setup.sh b/src/installer/dracut-module/module-setup.sh
new file mode 100755 (executable)
index 0000000..0aa77c9
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+    return 255
+}
+
+# called by dracut
+depends() {
+    echo base bash mdraid shutdown
+    return 0
+}
+
+# called by dracut
+install() {
+    inst /etc/system-release
+    inst /usr/bin/installer
+    inst /usr/bin/downloadsource.sh
+    inst /usr/local/bin/iowrap
+
+    # Kernel drivers
+    instmods =drivers/hid
+
+    # Network drivers
+    instmods =drivers/net/ethernet =drivers/net/usb
+    instmods virtio_net hv_netvsc vmxnet3
+
+    # Filesystem support
+    inst_multiple parted mkswap mke2fs mkreiserfs mkfs.xfs
+    instmods ext4 iso9660 reiserfs vfat xfs
+
+    # Extraction
+    inst_multiple tar gzip lzma xz
+
+    # DHCP Client
+    inst dhcpcd
+    inst /var/ipfire/dhcpc/dhcpcd-run-hooks
+    inst /var/ipfire/dhcpc/dhcpcd.conf
+    for file in /var/ipfire/dhcpc/dhcpcd-hooks/*; do
+        inst "${file}"
+    done
+    inst "$moddir/70-dhcpcd.exe" "/var/ipfire/dhcpc/dhcpcd-hooks/70-dhcpcd.exe"
+
+    # Misc. tools
+    inst_multiple eject ping touch wget
+    inst_multiple -o fdisk cfdisk df ps top
+
+    # Hardware IDs
+    inst /usr/share/hwdata/pci.ids /usr/share/hwdata/usb.ids
+
+    # Locales
+    for locale in de en es fr nl pl ru tr; do
+        for file in $(find /usr/lib/locale/${locale}*); do
+            inst "${file}"
+        done
+    done
+    for file in /usr/share/locale/*/LC_MESSAGES/installer.mo; do
+        inst "${file}"
+    done
+
+    # Bash start files
+    inst_multiple /etc/profile /root/.bash_profile /etc/bashrc /root/.bashrc
+    for file in /etc/profile.d/*.sh; do
+        inst "${file}"
+    done
+
+    inst_hook cmdline 99 "$moddir/fake-root.sh"
+    inst_hook pre-mount 99 "$moddir/run-installer.sh"
+
+    return 0
+}
diff --git a/src/installer/dracut-module/run-installer.sh b/src/installer/dracut-module/run-installer.sh
new file mode 100644 (file)
index 0000000..d0611ce
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# IPFire Installer RC
+#
+
+# Silence the kernel
+echo >/proc/sys/kernel/printk "1 4 1 7"
+echo -n -e "\033[9;0]"
+
+echo "Starting shells on tty2 and tty3 ..."
+/usr/local/bin/iowrap /dev/tty2 /bin/bash &
+/usr/local/bin/iowrap /dev/tty3 /bin/bash &
+
+echo "Loading Installer..."
+/bin/bash --login -c "/usr/bin/installer /dev/tty2"
+ret=$?
+
+case "${ret}" in
+       0)
+               # The installer has finished without a problem.
+               ;;
+       *)
+               echo "The installer has crashed. You will be dropped to a debugging shell"
+               /bin/bash --login
+               ;;
+esac
+
+# Reboot the system
+/shutdown reboot
diff --git a/src/installer/hw.c b/src/installer/hw.c
new file mode 100644 (file)
index 0000000..a3e5e59
--- /dev/null
@@ -0,0 +1,1011 @@
+/*#############################################################################
+#                                                                             #
+# IPFire - An Open Source Firewall Distribution                               #
+# Copyright (C) 2014 IPFire development team                                  #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# 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 General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+#############################################################################*/
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
+#include <assert.h>
+#include <blkid/blkid.h>
+#include <fcntl.h>
+#include <libudev.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/mount.h>
+#include <sys/swap.h>
+#include <unistd.h>
+
+#include <linux/fs.h>
+
+#include <libsmooth.h>
+
+#include "hw.h"
+
+const char* other_filesystems[] = {
+       "/dev",
+       "/proc",
+       "/sys",
+       NULL
+};
+
+static int system_chroot(const char* output, const char* path, const char* cmd) {
+       char chroot_cmd[STRING_SIZE];
+
+       snprintf(chroot_cmd, sizeof(chroot_cmd), "/usr/sbin/chroot %s %s", path, cmd);
+
+       return mysystem(output, chroot_cmd);
+}
+
+struct hw* hw_init() {
+       struct hw* hw = malloc(sizeof(*hw));
+       assert(hw);
+
+       // Initialize libudev
+       hw->udev = udev_new();
+       if (!hw->udev) {
+               fprintf(stderr, "Could not create udev instance\n");
+               exit(1);
+       }
+
+       return hw;
+}
+
+void hw_free(struct hw* hw) {
+       if (hw->udev)
+               udev_unref(hw->udev);
+
+       free(hw);
+}
+
+static int strstartswith(const char* a, const char* b) {
+       return (strncmp(a, b, strlen(b)) == 0);
+}
+
+int hw_mount(const char* source, const char* target, const char* fs, int flags) {
+       // Create target if it does not exist
+       if (access(target, X_OK) != 0)
+               mkdir(target, S_IRWXU|S_IRWXG|S_IRWXO);
+
+       return mount(source, target, fs, flags, NULL);
+}
+
+int hw_umount(const char* target) {
+       return umount2(target, 0);
+}
+
+static int hw_test_source_medium(const char* path) {
+       int ret = hw_mount(path, SOURCE_MOUNT_PATH, "iso9660", MS_RDONLY);
+
+       // If the source could not be mounted we
+       // cannot proceed.
+       if (ret != 0)
+               return ret;
+
+       // Check if the test file exists.
+       ret = access(SOURCE_TEST_FILE, R_OK);
+
+       // Umount the test device.
+       hw_umount(SOURCE_MOUNT_PATH);
+
+       return (ret == 0);
+}
+
+char* hw_find_source_medium(struct hw* hw) {
+       char* ret = NULL;
+
+       struct udev_enumerate* enumerate = udev_enumerate_new(hw->udev);
+
+       udev_enumerate_add_match_subsystem(enumerate, "block");
+       udev_enumerate_scan_devices(enumerate);
+
+       struct udev_list_entry* devices = udev_enumerate_get_list_entry(enumerate);
+
+       struct udev_list_entry* dev_list_entry;
+       udev_list_entry_foreach(dev_list_entry, devices) {
+               const char* path = udev_list_entry_get_name(dev_list_entry);
+               struct udev_device* dev = udev_device_new_from_syspath(hw->udev, path);
+
+               const char* dev_path = udev_device_get_devnode(dev);
+
+               // Skip everything what we cannot work with
+               if (strstartswith(dev_path, "/dev/loop") || strstartswith(dev_path, "/dev/fd") ||
+                               strstartswith(dev_path, "/dev/ram") || strstartswith(dev_path, "/dev/md"))
+                       continue;
+
+               if (hw_test_source_medium(dev_path) == 0) {
+                       ret = strdup(dev_path);
+               }
+
+               udev_device_unref(dev);
+
+               // If a suitable device was found the search will end.
+               if (ret)
+                       break;
+       }
+
+       udev_enumerate_unref(enumerate);
+
+       return ret;
+}
+
+static struct hw_disk** hw_create_disks() {
+       struct hw_disk** ret = malloc(sizeof(*ret) * (HW_MAX_DISKS + 1));
+
+       return ret;
+}
+
+static unsigned long long hw_block_device_get_size(const char* dev) {
+       int fd = open(dev, O_RDONLY);
+       if (fd < 0)
+               return 0;
+
+       unsigned long long size = blkid_get_dev_size(fd);
+       close(fd);
+
+       return size;
+}
+
+struct hw_disk** hw_find_disks(struct hw* hw, const char* sourcedrive) {
+       struct hw_disk** ret = hw_create_disks();
+       struct hw_disk** disks = ret;
+
+       struct udev_enumerate* enumerate = udev_enumerate_new(hw->udev);
+
+       udev_enumerate_add_match_subsystem(enumerate, "block");
+       udev_enumerate_scan_devices(enumerate);
+
+       struct udev_list_entry* devices = udev_enumerate_get_list_entry(enumerate);
+
+       struct udev_list_entry* dev_list_entry;
+       unsigned int i = HW_MAX_DISKS;
+       udev_list_entry_foreach(dev_list_entry, devices) {
+               const char* path = udev_list_entry_get_name(dev_list_entry);
+               struct udev_device* dev = udev_device_new_from_syspath(hw->udev, path);
+
+               const char* dev_path = udev_device_get_devnode(dev);
+
+               // Skip everything what we cannot work with
+               if (strstartswith(dev_path, "/dev/loop") || strstartswith(dev_path, "/dev/fd") ||
+                               strstartswith(dev_path, "/dev/ram") || strstartswith(dev_path, "/dev/sr") ||
+                               strstartswith(dev_path, "/dev/md")) {
+                       udev_device_unref(dev);
+                       continue;
+               }
+
+               // Skip sourcedrive if we need to
+               if (sourcedrive && (strcmp(dev_path, sourcedrive) == 0)) {
+                       udev_device_unref(dev);
+                       continue;
+               }
+
+               // DEVTYPE must be disk (otherwise we will see all sorts of partitions here)
+               const char* devtype = udev_device_get_property_value(dev, "DEVTYPE");
+               if (devtype && (strcmp(devtype, "disk") != 0)) {
+                       udev_device_unref(dev);
+                       continue;
+               }
+
+               // Skip devices with a size of zero
+               unsigned long long size = hw_block_device_get_size(dev_path);
+               if (size == 0) {
+                       udev_device_unref(dev);
+                       continue;
+               }
+
+               struct hw_disk* disk = malloc(sizeof(*disk));
+               if (disk == NULL)
+                       return NULL;
+
+               disk->ref = 1;
+
+               strncpy(disk->path, dev_path, sizeof(disk->path));
+
+               disk->size = size;
+
+               // Vendor
+               const char* vendor = udev_device_get_property_value(dev, "ID_VENDOR");
+               if (!vendor)
+                       vendor = udev_device_get_sysattr_value(dev, "vendor");
+               if (!vendor)
+                       vendor = udev_device_get_sysattr_value(dev, "manufacturer");
+
+               if (vendor)
+                       strncpy(disk->vendor, vendor, sizeof(disk->vendor));
+               else
+                       *disk->vendor = '\0';
+
+               // Model
+               const char* model = udev_device_get_property_value(dev, "ID_MODEL");
+               if (!model)
+                       model = udev_device_get_sysattr_value(dev, "model");
+               if (!model)
+                       model = udev_device_get_sysattr_value(dev, "product");
+
+               if (model)
+                       strncpy(disk->model, model, sizeof(disk->model));
+               else
+                       *disk->model = '\0';
+
+               // Format description
+               char size_str[STRING_SIZE];
+               snprintf(size_str, sizeof(size_str), "%4.1fGB", (double)disk->size / pow(1024, 3));
+
+               if (*disk->vendor && *disk->model) {
+                       snprintf(disk->description, sizeof(disk->description),
+                               "%s - %s - %s", size_str, disk->vendor, disk->model);
+
+               } else if (*disk->vendor || *disk->model) {
+                       snprintf(disk->description, sizeof(disk->description),
+                               "%s - %s", size_str, (*disk->vendor) ? disk->vendor : disk->model);
+
+               } else {
+                       snprintf(disk->description, sizeof(disk->description),
+                               "%s - N/A", size_str);
+               }
+
+               *disks++ = disk;
+
+               if (--i == 0)
+                       break;
+
+               udev_device_unref(dev);
+       }
+
+       udev_enumerate_unref(enumerate);
+
+       *disks = NULL;
+
+       return ret;
+}
+
+void hw_free_disks(struct hw_disk** disks) {
+       struct hw_disk** disk = disks;
+
+       while (*disk != NULL) {
+               if (--(*disk)->ref == 0)
+                       free(*disk);
+
+               disk++;
+       }
+
+       free(disks);
+}
+
+unsigned int hw_count_disks(struct hw_disk** disks) {
+       unsigned int ret = 0;
+
+       while (*disks++)
+               ret++;
+
+       return ret;
+}
+
+struct hw_disk** hw_select_disks(struct hw_disk** disks, int* selection) {
+       struct hw_disk** ret = hw_create_disks();
+       struct hw_disk** selected_disks = ret;
+
+       unsigned int num_disks = hw_count_disks(disks);
+
+       for (unsigned int i = 0; i < num_disks; i++) {
+               if (!selection || selection[i]) {
+                       struct hw_disk *selected_disk = disks[i];
+                       selected_disk->ref++;
+
+                       *selected_disks++ = selected_disk;
+               }
+       }
+
+       // Set sentinel
+       *selected_disks = NULL;
+
+       return ret;
+}
+
+static unsigned long long hw_swap_size(struct hw_destination* dest) {
+       unsigned long long memory = hw_memory();
+
+       unsigned long long swap_size = memory / 4;
+
+       // Min. swap size is 128MB
+       if (swap_size < MB2BYTES(128))
+               swap_size = MB2BYTES(128);
+
+       // Cap swap size to 1GB
+       else if (swap_size > MB2BYTES(1024))
+               swap_size = MB2BYTES(1024);
+
+       return swap_size;
+}
+
+static unsigned long long hw_root_size(struct hw_destination* dest) {
+       unsigned long long root_size;
+
+       if (dest->size < MB2BYTES(2048))
+               root_size = MB2BYTES(1024);
+
+       else if (dest->size >= MB2BYTES(2048) && dest->size <= MB2BYTES(3072))
+               root_size = MB2BYTES(1536);
+
+       else
+               root_size = MB2BYTES(2048);
+
+       return root_size;
+}
+
+static unsigned long long hw_boot_size(struct hw_destination* dest) {
+       return MB2BYTES(64);
+}
+
+static int hw_calculate_partition_table(struct hw_destination* dest) {
+       char path[DEV_SIZE];
+       int part_idx = 1;
+
+       snprintf(path, sizeof(path), "%s%s", dest->path, (dest->is_raid) ? "p" : "");
+       dest->part_boot_idx = 0;
+
+       // Determine the size of the target block device
+       if (dest->is_raid) {
+               dest->size = (dest->disk1->size >= dest->disk2->size) ?
+                       dest->disk2->size : dest->disk1->size;
+
+               // The RAID will install some metadata at the end of the disk
+               // and we will save up some space for that.
+               dest->size -= MB2BYTES(2);
+       } else {
+               dest->size = dest->disk1->size;
+       }
+
+       // As we add some extra space before the beginning of the first
+       // partition, we need to substract that here.
+       dest->size -= MB2BYTES(1);
+
+       // Add some more space for partition tables, etc.
+       dest->size -= MB2BYTES(1);
+
+       // Determine partition table
+       dest->part_table = HW_PART_TABLE_MSDOS;
+
+       // Disks over 2TB need to use GPT
+       if (dest->size >= MB2BYTES(2047 * 1024))
+               dest->part_table = HW_PART_TABLE_GPT;
+
+       // We also use GPT on raid disks by default
+       else if (dest->is_raid)
+               dest->part_table = HW_PART_TABLE_GPT;
+
+       // When using GPT, GRUB2 needs a little bit of space to put
+       // itself in.
+       if (dest->part_table == HW_PART_TABLE_GPT) {
+               snprintf(dest->part_bootldr, sizeof(dest->part_bootldr),
+                       "%s%d", path, part_idx);
+
+               dest->size_bootldr = MB2BYTES(4);
+
+               dest->part_boot_idx = part_idx++;
+       } else {
+               *dest->part_bootldr = '\0';
+               dest->size_bootldr = 0;
+       }
+
+       dest->size_boot = hw_boot_size(dest);
+       dest->size_swap = hw_swap_size(dest);
+       dest->size_root = hw_root_size(dest);
+
+       // Determine the size of the data partition.
+       unsigned long long used_space = dest->size_bootldr + dest->size_boot
+               + dest->size_swap + dest->size_root;
+
+       // Disk is way too small
+       if (used_space >= dest->size)
+               return -1;
+
+       dest->size_data = dest->size - used_space;
+
+       // If it gets too small, we remove the swap space.
+       if (dest->size_data <= MB2BYTES(256)) {
+               dest->size_data += dest->size_swap;
+               dest->size_swap = 0;
+       }
+
+       // Set partition names
+       if (dest->size_boot > 0) {
+               if (dest->part_boot_idx == 0)
+                       dest->part_boot_idx = part_idx;
+
+               snprintf(dest->part_boot, sizeof(dest->part_boot), "%s%d", path, part_idx++);
+       } else
+               *dest->part_boot = '\0';
+
+       if (dest->size_swap > 0)
+               snprintf(dest->part_swap, sizeof(dest->part_swap), "%s%d", path, part_idx++);
+       else
+               *dest->part_swap = '\0';
+
+       // There is always a root partition
+       if (dest->part_boot_idx == 0)
+               dest->part_boot_idx = part_idx;
+
+       snprintf(dest->part_root, sizeof(dest->part_root), "%s%d", path, part_idx++);
+
+       if (dest->size_data > 0)
+               snprintf(dest->part_data, sizeof(dest->part_data), "%s%d", path, part_idx++);
+       else
+               *dest->part_data = '\0';
+
+       return 0;
+}
+
+struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks) {
+       struct hw_destination* dest = malloc(sizeof(*dest));
+
+       if (part_type == HW_PART_TYPE_NORMAL) {
+               dest->disk1 = *disks;
+               dest->disk2 = NULL;
+
+               strncpy(dest->path, dest->disk1->path, sizeof(dest->path));
+
+       } else if (part_type == HW_PART_TYPE_RAID1) {
+               dest->disk1 = *disks++;
+               dest->disk2 = *disks;
+               dest->raid_level = 1;
+
+               snprintf(dest->path, sizeof(dest->path), "/dev/md0");
+       }
+
+       // Is this a RAID device?
+       dest->is_raid = (part_type > HW_PART_TYPE_NORMAL);
+
+       int r = hw_calculate_partition_table(dest);
+       if (r)
+               return NULL;
+
+       // Set default filesystem
+       dest->filesystem = HW_FS_DEFAULT;
+
+       return dest;
+}
+
+unsigned long long hw_memory() {
+       FILE* handle = NULL;
+       char line[STRING_SIZE];
+
+       unsigned long long memory = 0;
+
+       /* Calculate amount of memory in machine */
+       if ((handle = fopen("/proc/meminfo", "r"))) {
+               while (fgets(line, sizeof(line), handle)) {
+                       if (!sscanf (line, "MemTotal: %llu kB", &memory)) {
+                               memory = 0;
+                       }
+               }
+
+               fclose(handle);
+       }
+
+       return memory * 1024;
+}
+
+static int hw_zero_out_device(const char* path, int bytes) {
+       char block[512];
+       memset(block, 0, sizeof(block));
+
+       int blocks = bytes / sizeof(block);
+
+       int fd = open(path, O_WRONLY);
+       if (fd < 0)
+               return -1;
+
+       unsigned int bytes_written = 0;
+       while (blocks-- > 0) {
+               bytes_written += write(fd, block, sizeof(block));
+       }
+
+       fsync(fd);
+       close(fd);
+
+       return bytes_written;
+}
+
+static int try_open(const char* path) {
+       FILE* f = fopen(path, "r");
+       if (f) {
+               fclose(f);
+               return 0;
+       }
+
+       return -1;
+}
+
+int hw_create_partitions(struct hw_destination* dest, const char* output) {
+       // Before we write a new partition table to the disk, we will erase
+       // the first couple of megabytes at the beginning of the device to
+       // get rid of all left other things like bootloaders and partition tables.
+       // This solves some problems when changing from MBR to GPT partitions or
+       // the other way around.
+       int r = hw_zero_out_device(dest->path, MB2BYTES(10));
+       if (r <= 0)
+               return r;
+
+       char* cmd = NULL;
+       asprintf(&cmd, "/usr/sbin/parted -s %s -a optimal", dest->path);
+
+       // Set partition type
+       if (dest->part_table == HW_PART_TABLE_MSDOS)
+               asprintf(&cmd, "%s mklabel msdos", cmd);
+       else if (dest->part_table == HW_PART_TABLE_GPT)
+               asprintf(&cmd, "%s mklabel gpt", cmd);
+
+       unsigned long long part_start = MB2BYTES(1);
+
+       if (*dest->part_bootldr) {
+               asprintf(&cmd, "%s mkpart %s ext2 %lluB %lluB", cmd,
+                       (dest->part_table == HW_PART_TABLE_GPT) ? "BOOTLDR" : "primary",
+               part_start, part_start + dest->size_bootldr - 1);
+
+               part_start += dest->size_bootldr;
+       }
+
+       if (*dest->part_boot) {
+               asprintf(&cmd, "%s mkpart %s ext2 %lluB %lluB", cmd,
+                       (dest->part_table == HW_PART_TABLE_GPT) ? "BOOT" : "primary",
+                       part_start, part_start + dest->size_boot - 1);
+
+               part_start += dest->size_boot;
+       }
+
+       if (*dest->part_swap) {
+               asprintf(&cmd, "%s mkpart %s linux-swap %lluB %lluB", cmd,
+                       (dest->part_table == HW_PART_TABLE_GPT) ? "SWAP" : "primary",
+                       part_start, part_start + dest->size_swap - 1);
+
+               part_start += dest->size_swap;
+       }
+
+       if (*dest->part_root) {
+               asprintf(&cmd, "%s mkpart %s ext2 %lluB %lluB", cmd,
+                       (dest->part_table == HW_PART_TABLE_GPT) ? "ROOT" : "primary",
+                       part_start, part_start + dest->size_root - 1);
+
+               part_start += dest->size_root;
+       }
+
+       if (*dest->part_data) {
+               asprintf(&cmd, "%s mkpart %s ext2 %lluB %lluB", cmd,
+                       (dest->part_table == HW_PART_TABLE_GPT) ? "DATA" : "primary",
+                       part_start, part_start + dest->size_data - 1);
+
+               part_start += dest->size_data;
+       }
+
+       if (dest->part_boot_idx > 0)
+               asprintf(&cmd, "%s set %d boot on", cmd, dest->part_boot_idx);
+
+       if (dest->part_table == HW_PART_TABLE_GPT) {
+               if (*dest->part_bootldr) {
+                       asprintf(&cmd, "%s set %d bios_grub on", cmd, dest->part_boot_idx);
+               }
+               asprintf(&cmd, "%s disk_set pmbr_boot on", cmd);
+       }
+
+       r = mysystem(output, cmd);
+
+       // Wait until the system re-read the partition table
+       if (r == 0) {
+               unsigned int counter = 10;
+
+               while (counter-- > 0) {
+                       sleep(1);
+
+                       if (*dest->part_bootldr && (try_open(dest->part_bootldr) != 0))
+                               continue;
+
+                       if (*dest->part_boot && (try_open(dest->part_boot) != 0))
+                               continue;
+
+                       if (*dest->part_swap && (try_open(dest->part_swap) != 0))
+                               continue;
+
+                       if (*dest->part_root && (try_open(dest->part_root) != 0))
+                               continue;
+
+                       if (*dest->part_data && (try_open(dest->part_data) != 0))
+                               continue;
+
+                       // All partitions do exist, exiting the loop.
+                       break;
+               }
+       }
+
+       if (cmd)
+               free(cmd);
+
+       return r;
+}
+
+static int hw_format_filesystem(const char* path, int fs, const char* output) {
+       char cmd[STRING_SIZE] = "\0";
+
+       // Swap
+       if (fs == HW_FS_SWAP) {
+               snprintf(cmd, sizeof(cmd), "/sbin/mkswap -v1 %s &>/dev/null", path);
+       // ReiserFS
+       } else if (fs == HW_FS_REISERFS) {
+               snprintf(cmd, sizeof(cmd), "/sbin/mkreiserfs -f %s ", path);
+
+       // EXT4
+       } else if (fs == HW_FS_EXT4) {
+               snprintf(cmd, sizeof(cmd), "/sbin/mke2fs -T ext4 %s", path);
+
+       // EXT4 w/o journal
+       } else if (fs == HW_FS_EXT4_WO_JOURNAL) {
+               snprintf(cmd, sizeof(cmd), "/sbin/mke2fs -T ext4 -O ^has_journal %s", path);
+
+       // XFS
+       } else if (fs == HW_FS_XFS) {
+               snprintf(cmd, sizeof(cmd), "/sbin/mkfs.xfs -f %s", path);
+       }
+
+       assert(*cmd);
+
+       int r = mysystem(output, cmd);
+
+       return r;
+}
+
+int hw_create_filesystems(struct hw_destination* dest, const char* output) {
+       int r;
+
+       // boot
+       if (*dest->part_boot) {
+               r = hw_format_filesystem(dest->part_boot, dest->filesystem, output);
+               if (r)
+                       return r;
+       }
+
+       // swap
+       if (*dest->part_swap) {
+               r = hw_format_filesystem(dest->part_swap, HW_FS_SWAP, output);
+               if (r)
+                       return r;
+       }
+
+       // root
+       r = hw_format_filesystem(dest->part_root, dest->filesystem, output);
+       if (r)
+               return r;
+
+       // data
+       if (*dest->part_data) {
+               r = hw_format_filesystem(dest->part_data, dest->filesystem, output);
+               if (r)
+                       return r;
+       }
+
+       return 0;
+}
+
+int hw_mount_filesystems(struct hw_destination* dest, const char* prefix) {
+       char target[STRING_SIZE];
+
+       assert(*prefix == '/');
+
+       const char* filesystem;
+       switch (dest->filesystem) {
+               case HW_FS_REISERFS:
+                       filesystem = "reiserfs";
+                       break;
+
+               case HW_FS_EXT4:
+               case HW_FS_EXT4_WO_JOURNAL:
+                       filesystem = "ext4";
+                       break;
+
+               case HW_FS_XFS:
+                       filesystem = "xfs";
+                       break;
+
+               default:
+                       assert(0);
+       }
+
+       // root
+       int r = hw_mount(dest->part_root, prefix, filesystem, 0);
+       if (r)
+               return r;
+
+       // boot
+       if (*dest->part_boot) {
+               snprintf(target, sizeof(target), "%s%s", prefix, HW_PATH_BOOT);
+               mkdir(target, S_IRWXU|S_IRWXG|S_IRWXO);
+
+               r = hw_mount(dest->part_boot, target, filesystem, 0);
+               if (r) {
+                       hw_umount_filesystems(dest, prefix);
+
+                       return r;
+               }
+       }
+
+       // data
+       if (*dest->part_data) {
+               snprintf(target, sizeof(target), "%s%s", prefix, HW_PATH_DATA);
+               mkdir(target, S_IRWXU|S_IRWXG|S_IRWXO);
+
+               r = hw_mount(dest->part_data, target, filesystem, 0);
+               if (r) {
+                       hw_umount_filesystems(dest, prefix);
+
+                       return r;
+               }
+       }
+
+       // swap
+       if (*dest->part_swap) {
+               r = swapon(dest->part_swap, 0);
+               if (r) {
+                       hw_umount_filesystems(dest, prefix);
+
+                       return r;
+               }
+       }
+
+       // bind-mount misc filesystems
+       char** otherfs = other_filesystems;
+       while (*otherfs) {
+               snprintf(target, sizeof(target), "%s%s", prefix, *otherfs);
+
+               mkdir(target, S_IRWXU|S_IRWXG|S_IRWXO);
+               r = hw_mount(*otherfs, target, NULL, MS_BIND);
+               if (r) {
+                       hw_umount_filesystems(dest, prefix);
+
+                       return r;
+               }
+
+               otherfs++;
+       }
+
+       return 0;
+}
+
+int hw_umount_filesystems(struct hw_destination* dest, const char* prefix) {
+       // Write all buffers to disk before umounting
+       hw_sync();
+
+       // boot
+       if (*dest->part_boot) {
+               hw_umount(dest->part_boot);
+       }
+
+       // data
+       if (*dest->part_data) {
+               hw_umount(dest->part_data);
+       }
+
+       // root
+       hw_umount(dest->part_root);
+
+       // swap
+       if (*dest->part_swap) {
+               swapoff(dest->part_swap);
+       }
+
+       // misc filesystems
+       char target[STRING_SIZE];
+       char** otherfs = other_filesystems;
+
+       while (*otherfs) {
+               snprintf(target, sizeof(target), "%s%s", prefix, *otherfs++);
+               hw_umount(target);
+       }
+
+       return 0;
+}
+
+int hw_destroy_raid_superblocks(const struct hw_destination* dest, const char* output) {
+       char cmd[STRING_SIZE];
+
+       hw_stop_all_raid_arrays(output);
+       hw_stop_all_raid_arrays(output);
+
+       if (dest->disk1) {
+               snprintf(cmd, sizeof(cmd), "/sbin/mdadm --zero-superblock %s", dest->disk1->path);
+               mysystem(output, cmd);
+       }
+
+       if (dest->disk2) {
+               snprintf(cmd, sizeof(cmd), "/sbin/mdadm --zero-superblock %s", dest->disk2->path);
+               mysystem(output, cmd);
+       }
+
+       return 0;
+}
+
+int hw_setup_raid(struct hw_destination* dest, const char* output) {
+       char* cmd = NULL;
+       int r;
+
+       assert(dest->is_raid);
+
+       // Stop all RAID arrays that might be around (again).
+       // It seems that there is some sort of race-condition with udev re-enabling
+       // the raid arrays and therefore locking the disks.
+       r = hw_destroy_raid_superblocks(dest, output);
+
+       asprintf(&cmd, "echo \"y\" | /sbin/mdadm --create --verbose --metadata=%s --auto=mdp %s",
+               RAID_METADATA, dest->path);
+
+       switch (dest->raid_level) {
+               case 1:
+                       asprintf(&cmd, "%s --level=1 --raid-devices=2", cmd);
+                       break;
+
+               default:
+                       assert(0);
+       }
+
+       if (dest->disk1) {
+               asprintf(&cmd, "%s %s", cmd, dest->disk1->path);
+
+               // Clear all data at the beginning
+               r = hw_zero_out_device(dest->disk1->path, MB2BYTES(10));
+               if (r <= 0)
+                       return r;
+       }
+
+       if (dest->disk2) {
+               asprintf(&cmd, "%s %s", cmd, dest->disk2->path);
+
+               // Clear all data at the beginning
+               r = hw_zero_out_device(dest->disk2->path, MB2BYTES(10));
+               if (r <= 0)
+                       return r;
+       }
+
+       r = mysystem(output, cmd);
+       free(cmd);
+
+       // Wait a moment until the device has been properly brought up
+       if (r == 0) {
+               unsigned int counter = 10;
+               while (counter-- > 0) {
+                       sleep(1);
+
+                       // If the raid device has not yet been properly brought up,
+                       // opening it will fail with the message: Device or resource busy
+                       // Hence we will wait a bit until it becomes usable.
+                       if (try_open(dest->path) == 0)
+                               break;
+               }
+       }
+
+       return r;
+}
+
+int hw_stop_all_raid_arrays(const char* output) {
+       return mysystem(output, "/sbin/mdadm --stop --scan --verbose");
+}
+
+int hw_install_bootloader(struct hw_destination* dest, const char* output) {
+       char cmd[STRING_SIZE];
+       int r;
+
+       // Generate configuration file
+       snprintf(cmd, sizeof(cmd), "/usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg");
+       r = system_chroot(output, DESTINATION_MOUNT_PATH, cmd);
+       if (r)
+               return r;
+
+       char cmd_grub[STRING_SIZE];
+       snprintf(cmd_grub, sizeof(cmd_grub), "/usr/sbin/grub-install --no-floppy --recheck");
+
+       if (dest->is_raid) {
+               snprintf(cmd, sizeof(cmd), "%s %s", cmd_grub, dest->disk1->path);
+               r = system_chroot(output, DESTINATION_MOUNT_PATH, cmd);
+               if (r)
+                       return r;
+
+               snprintf(cmd, sizeof(cmd), "%s %s", cmd_grub, dest->disk2->path);
+               r = system_chroot(output, DESTINATION_MOUNT_PATH, cmd);
+       } else {
+               snprintf(cmd, sizeof(cmd), "%s %s", cmd_grub, dest->path);
+               r = system_chroot(output, DESTINATION_MOUNT_PATH, cmd);
+       }
+
+       return r;
+}
+
+static char* hw_get_uuid(const char* dev) {
+       blkid_probe p = blkid_new_probe_from_filename(dev);
+       const char* buffer = NULL;
+       char* uuid = NULL;
+
+       if (!p)
+               return NULL;
+
+       blkid_do_probe(p);
+       blkid_probe_lookup_value(p, "UUID", &buffer, NULL);
+
+       if (buffer)
+               uuid = strdup(buffer);
+
+       blkid_free_probe(p);
+
+       return uuid;
+}
+
+int hw_write_fstab(struct hw_destination* dest) {
+       FILE* f = fopen(DESTINATION_MOUNT_PATH "/etc/fstab", "w");
+       if (!f)
+               return -1;
+
+       const char* fmt = "UUID=%s %-8s %-4s %-10s %d %d\n";
+       char* uuid = NULL;
+
+       // boot
+       if (*dest->part_boot) {
+               uuid = hw_get_uuid(dest->part_boot);
+
+               if (uuid) {
+                       fprintf(f, fmt, uuid, "/boot", "auto", "defaults", 1, 2);
+                       free(uuid);
+               }
+       }
+
+       // swap
+       if (*dest->part_swap) {
+               uuid = hw_get_uuid(dest->part_swap);
+
+               if (uuid) {
+                       fprintf(f, fmt, uuid, "swap", "swap", "defaults,pri=1", 0, 0);
+                       free(uuid);
+               }
+       }
+
+       // root
+       uuid = hw_get_uuid(dest->part_root);
+       if (uuid) {
+               fprintf(f, fmt, uuid, "/", "auto", "defaults", 1, 1);
+               free(uuid);
+       }
+
+       // data
+       if (*dest->part_data) {
+               uuid = hw_get_uuid(dest->part_data);
+
+               if (uuid) {
+                       fprintf(f, fmt, uuid, "/var", "auto", "defaults", 1, 1);
+                       free(uuid);
+               }
+       }
+
+       fclose(f);
+
+       return 0;
+}
+
+void hw_sync() {
+       sync();
+       sync();
+       sync();
+}
diff --git a/src/installer/hw.h b/src/installer/hw.h
new file mode 100644 (file)
index 0000000..e4bb18b
--- /dev/null
@@ -0,0 +1,132 @@
+/*#############################################################################
+#                                                                             #
+# IPFire - An Open Source Firewall Distribution                               #
+# Copyright (C) 2014 IPFire development team                                  #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# 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 General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+#############################################################################*/
+
+#ifndef HEADER_HW_H
+#define HEADER_HW_H
+
+#include <libudev.h>
+
+#define DESTINATION_MOUNT_PATH        "/harddisk"
+#define SOURCE_MOUNT_PATH "/cdrom"
+#define SOURCE_TEST_FILE  SOURCE_MOUNT_PATH "/" VERSION ".media"
+
+#define HW_MAX_DISKS                 32
+#define STRING_SIZE                1024
+#define DEV_SIZE                    128
+
+#define HW_PATH_BOOT                  "/boot"
+#define HW_PATH_DATA                  "/var"
+
+#define HW_PART_TYPE_NORMAL           0
+#define HW_PART_TYPE_RAID1            1
+
+#define HW_PART_TABLE_MSDOS           0
+#define HW_PART_TABLE_GPT             1
+
+#define HW_FS_SWAP                    0
+#define HW_FS_REISERFS                1
+#define HW_FS_EXT4                    2
+#define HW_FS_EXT4_WO_JOURNAL         3
+#define HW_FS_XFS                     4
+
+#define HW_FS_DEFAULT                 HW_FS_EXT4
+
+#define RAID_METADATA                 "1.0"
+
+#define SERIAL_BAUDRATE               115200
+
+#define BYTES2MB(x) ((x) / 1024 / 1024)
+#define MB2BYTES(x) ((unsigned long long)(x) * 1024 * 1024)
+
+struct hw {
+       struct udev *udev;
+};
+
+struct hw_disk {
+       char path[DEV_SIZE];
+       unsigned long long size;
+
+       char description[STRING_SIZE];
+       char vendor[STRING_SIZE];
+       char model[STRING_SIZE];
+
+       // Reference counter
+       int ref;
+};
+
+struct hw_destination {
+       char path[DEV_SIZE];
+
+       int is_raid;
+       int raid_level;
+       const struct hw_disk* disk1;
+       const struct hw_disk* disk2;
+
+       int part_table;
+       char part_bootldr[DEV_SIZE];
+       char part_boot[DEV_SIZE];
+       char part_swap[DEV_SIZE];
+       char part_root[DEV_SIZE];
+       char part_data[DEV_SIZE];
+       int part_boot_idx;
+
+       int filesystem;
+
+       unsigned long long size;
+       unsigned long long size_bootldr;
+       unsigned long long size_boot;
+       unsigned long long size_swap;
+       unsigned long long size_root;
+       unsigned long long size_data;
+};
+
+struct hw* hw_init();
+void hw_free(struct hw* hw);
+
+int hw_mount(const char* source, const char* target, const char* fs, int flags);
+int hw_umount(const char* target);
+
+char* hw_find_source_medium(struct hw* hw);
+
+struct hw_disk** hw_find_disks(struct hw* hw, const char* sourcedrive);
+void hw_free_disks(struct hw_disk** disks);
+unsigned int hw_count_disks(struct hw_disk** disks);
+struct hw_disk** hw_select_disks(struct hw_disk** disks, int* selection);
+
+struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks);
+
+unsigned long long hw_memory();
+
+int hw_create_partitions(struct hw_destination* dest, const char* output);
+int hw_create_filesystems(struct hw_destination* dest, const char* output);
+
+int hw_mount_filesystems(struct hw_destination* dest, const char* prefix);
+int hw_umount_filesystems(struct hw_destination* dest, const char* prefix);
+
+int hw_destroy_raid_superblocks(const struct hw_destination* dest, const char* output);
+int hw_setup_raid(struct hw_destination* dest, const char* output);
+int hw_stop_all_raid_arrays(const char* output);
+
+int hw_install_bootloader(struct hw_destination* dest, const char* output);
+int hw_write_fstab(struct hw_destination* dest);
+
+void hw_sync();
+
+#endif /* HEADER_HW_H */
diff --git a/src/installer/install.h b/src/installer/install.h
new file mode 100644 (file)
index 0000000..8e59930
--- /dev/null
@@ -0,0 +1,14 @@
+/* SmoothWall install program.
+ *
+ * This program is distributed under the terms of the GNU General Public
+ * Licence.  See the file COPYING for details.
+ *
+ * (c) Lawrence Manning, 2001
+ * Main include file.
+ * 
+ */
+
+#include <libsmooth.h>
+
+/* unattended.c */
+int unattended_setup(struct keyvalue *unattendedkv, const char* output);
diff --git a/src/installer/m4/attributes.m4 b/src/installer/m4/attributes.m4
new file mode 100644 (file)
index 0000000..7e080da
--- /dev/null
@@ -0,0 +1,288 @@
+dnl Macros to check the presence of generic (non-typed) symbols.
+dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
+dnl Copyright (c) 2006-2008 xine project
+dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+dnl 02110-1301, USA.
+dnl
+dnl As a special exception, the copyright owners of the
+dnl macro gives unlimited permission to copy, distribute and modify the
+dnl configure scripts that are the output of Autoconf when processing the
+dnl Macro. You need not follow the terms of the GNU General Public
+dnl License when using or distributing such scripts, even though portions
+dnl of the text of the Macro appear in them. The GNU General Public
+dnl License (GPL) does govern all other use of the material that
+dnl constitutes the Autoconf Macro.
+dnl
+dnl This special exception to the GPL applies to versions of the
+dnl Autoconf Macro released by this project. When you make and
+dnl distribute a modified version of the Autoconf Macro, you may extend
+dnl this special exception to the GPL to apply to your modified version as
+dnl well.
+
+dnl Check if FLAG in ENV-VAR is supported by compiler and append it
+dnl to WHERE-TO-APPEND variable
+dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG])
+
+AC_DEFUN([CC_CHECK_FLAG_APPEND], [
+  AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
+                 AS_TR_SH([cc_cv_$2_$3]),
+          [eval "AS_TR_SH([cc_save_$2])='${$2}'"
+           eval "AS_TR_SH([$2])='-Werror $3'"
+           AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a = 0; int main(void) { return a; } ])],
+                                    [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
+                                    [eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
+           eval "AS_TR_SH([$2])='$cc_save_$2'"])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes],
+        [eval "$1='${$1} $3'"])
+])
+
+dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2])
+AC_DEFUN([CC_CHECK_FLAGS_APPEND], [
+  for flag in $3; do
+    CC_CHECK_FLAG_APPEND($1, $2, $flag)
+  done
+])
+
+dnl Check if the flag is supported by linker (cacheable)
+dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+
+AC_DEFUN([CC_CHECK_LDFLAGS], [
+  AC_CACHE_CHECK([if $CC supports $1 flag],
+    AS_TR_SH([cc_cv_ldflags_$1]),
+    [ac_save_LDFLAGS="$LDFLAGS"
+     LDFLAGS="$LDFLAGS $1"
+     AC_LINK_IFELSE([int main() { return 1; }],
+       [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
+       [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
+     LDFLAGS="$ac_save_LDFLAGS"
+    ])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
+    [$2], [$3])
+])
+
+dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
+dnl the current linker to avoid undefined references in a shared object.
+AC_DEFUN([CC_NOUNDEFINED], [
+  dnl We check $host for which systems to enable this for.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  case $host in
+     dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
+     dnl are requested, as different implementations are present; to avoid problems
+     dnl use -Wl,-z,defs only for those platform not behaving this way.
+     *-freebsd* | *-openbsd*) ;;
+     *)
+        dnl First of all check for the --no-undefined variant of GNU ld. This allows
+        dnl for a much more readable commandline, so that people can understand what
+        dnl it does without going to look for what the heck -z defs does.
+        for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
+           CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
+           break
+        done
+     ;;
+  esac
+
+  AC_SUBST([LDFLAGS_NOUNDEFINED])
+])
+
+dnl Check for a -Werror flag or equivalent. -Werror is the GCC
+dnl and ICC flag that tells the compiler to treat all the warnings
+dnl as fatal. We usually need this option to make sure that some
+dnl constructs (like attributes) are not simply ignored.
+dnl
+dnl Other compilers don't support -Werror per se, but they support
+dnl an equivalent flag:
+dnl  - Sun Studio compiler supports -errwarn=%all
+AC_DEFUN([CC_CHECK_WERROR], [
+  AC_CACHE_CHECK(
+    [for $CC way to treat warnings as errors],
+    [cc_cv_werror],
+    [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
+      [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
+    ])
+])
+
+AC_DEFUN([CC_CHECK_ATTRIBUTE], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
+    AS_TR_SH([cc_cv_attribute_$1]),
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])],
+       [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
+       [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
+     CFLAGS="$ac_save_CFLAGS"
+    ])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
+    [AC_DEFINE(
+       AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
+         [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
+         )
+     $4],
+    [$5])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
+  CC_CHECK_ATTRIBUTE(
+    [constructor],,
+    [void __attribute__((constructor)) ctor() { int a; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
+  CC_CHECK_ATTRIBUTE(
+    [format], [format(printf, n, n)],
+    [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
+  CC_CHECK_ATTRIBUTE(
+    [format_arg], [format_arg(printf)],
+    [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
+  CC_CHECK_ATTRIBUTE(
+    [visibility_$1], [visibility("$1")],
+    [void __attribute__((visibility("$1"))) $1_function() { }],
+    [$2], [$3])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
+  CC_CHECK_ATTRIBUTE(
+    [nonnull], [nonnull()],
+    [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
+  CC_CHECK_ATTRIBUTE(
+    [unused], ,
+    [void some_function(void *foo, __attribute__((unused)) void *bar);],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
+  CC_CHECK_ATTRIBUTE(
+    [sentinel], ,
+    [void some_function(void *foo, ...) __attribute__((sentinel));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
+  CC_CHECK_ATTRIBUTE(
+    [deprecated], ,
+    [void some_function(void *foo, ...) __attribute__((deprecated));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
+  CC_CHECK_ATTRIBUTE(
+    [alias], [weak, alias],
+    [void other_function(void *foo) { }
+     void some_function(void *foo) __attribute__((weak, alias("other_function")));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
+  CC_CHECK_ATTRIBUTE(
+    [malloc], ,
+    [void * __attribute__((malloc)) my_alloc(int n);],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_PACKED], [
+  CC_CHECK_ATTRIBUTE(
+    [packed], ,
+    [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_CONST], [
+  CC_CHECK_ATTRIBUTE(
+    [const], ,
+    [int __attribute__((const)) twopow(int n) { return 1 << n; } ],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_FLAG_VISIBILITY], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
+    [cc_cv_flag_visibility],
+    [cc_flag_visibility_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
+     cc_cv_flag_visibility='yes',
+     cc_cv_flag_visibility='no')
+     CFLAGS="$cc_flag_visibility_save_CFLAGS"])
+
+  AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
+    [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
+       [Define this if the compiler supports the -fvisibility flag])
+     $1],
+    [$2])
+])
+
+AC_DEFUN([CC_FUNC_EXPECT], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if compiler has __builtin_expect function],
+    [cc_cv_func_expect],
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+       [int some_function() {
+        int a = 3;
+        return (int)__builtin_expect(a, 3);
+     }])],
+       [cc_cv_func_expect=yes],
+       [cc_cv_func_expect=no])
+     CFLAGS="$ac_save_CFLAGS"
+    ])
+
+  AS_IF([test "x$cc_cv_func_expect" = "xyes"],
+    [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
+     [Define this if the compiler supports __builtin_expect() function])
+     $1],
+    [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
+    [cc_cv_attribute_aligned],
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     for cc_attribute_align_try in 64 32 16 8 4 2; do
+        AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+          int main() {
+            static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
+            return c;
+          }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
+     done
+     CFLAGS="$ac_save_CFLAGS"
+  ])
+
+  if test "x$cc_cv_attribute_aligned" != "x"; then
+     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
+       [Define the highest alignment supported])
+  fi
+])
diff --git a/src/installer/main.c b/src/installer/main.c
new file mode 100644 (file)
index 0000000..88b3735
--- /dev/null
@@ -0,0 +1,713 @@
+/* SmoothWall install program.
+ *
+ * This program is distributed under the terms of the GNU General Public
+ * Licence.  See the file COPYING for details.
+ *
+ * (c) Lawrence Manning, 2001
+ * Contains main entry point, and misc functions.6
+ * 
+ */
+
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mount.h>
+
+#include "hw.h"
+#include "install.h"
+
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("installer", x)
+
+#define INST_FILECOUNT 21000
+#define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
+#define LICENSE_FILE   "/cdrom/COPYING"
+
+extern char url[STRING_SIZE];
+
+static int newtChecklist(const char* title, const char* message,
+               unsigned int width, unsigned int height, unsigned int num_entries,
+               const char** entries, int* states) {
+       int ret;
+       const int list_height = 4;
+
+       char cbstates[num_entries];
+
+       for (unsigned int i = 0; i < num_entries; i++) {
+               cbstates[i] = states[i] ? '*' : ' ';
+       }
+
+       newtCenteredWindow(width, height, title);
+
+       newtComponent textbox = newtTextbox(1, 1, width - 2, height - 6 - list_height,
+               NEWT_FLAG_WRAP);
+       newtTextboxSetText(textbox, message);
+
+       int top = newtTextboxGetNumLines(textbox) + 2;
+
+       newtComponent form = newtForm(NULL, NULL, 0);
+
+       newtComponent sb = NULL;
+       if (list_height < num_entries) {
+               sb = newtVerticalScrollbar(
+                       width - 4, top + 1, list_height,
+                       NEWT_COLORSET_CHECKBOX, NEWT_COLORSET_ACTCHECKBOX);
+
+               newtFormAddComponent(form, sb);
+       }
+
+       newtComponent subform = newtForm(sb, NULL, 0);
+       newtFormSetBackground(subform, NEWT_COLORSET_CHECKBOX);
+
+       newtFormSetHeight(subform, list_height);
+       newtFormSetWidth(subform, width - 10);
+
+       for (unsigned int i = 0; i < num_entries; i++) {
+               newtComponent cb = newtCheckbox(4, top + i, entries[i], cbstates[i],
+                       NULL, &cbstates[i]);
+
+               newtFormAddComponent(subform, cb);
+       }
+
+       newtFormAddComponents(form, textbox, subform, NULL);
+
+       newtComponent btn_okay   = newtButton((width - 18) / 3, height - 4, _("OK"));
+       newtComponent btn_cancel = newtButton((width - 18) / 3 * 2 + 9, height - 4, _("Cancel"));
+       newtFormAddComponents(form, btn_okay, btn_cancel, NULL);
+
+       newtComponent answer = newtRunForm(form);
+
+       if ((answer == NULL) || (answer == btn_cancel)) {
+               ret = -1;
+       } else {
+               ret = 0;
+
+               for (unsigned int i = 0; i < num_entries; i++) {
+                       states[i] = (cbstates[i] != ' ');
+
+                       if (states[i])
+                               ret++;
+               }
+       }
+
+       newtFormDestroy(form);
+       newtPopWindow();
+
+       return ret;
+}
+
+static int newtWinOkCancel(const char* title, const char* message, int width, int height,
+               const char* btn_txt_ok, const char* btn_txt_cancel) {
+       int ret = 1;
+
+       newtCenteredWindow(width, height, title);
+
+       newtComponent form = newtForm(NULL, NULL, 0);
+
+       newtComponent textbox = newtTextbox(1, 1, width - 2, height - 6, NEWT_FLAG_WRAP);
+       newtTextboxSetText(textbox, message);
+       newtFormAddComponent(form, textbox);
+
+       unsigned int btn_width_ok = strlen(btn_txt_ok);
+       unsigned int btn_width_cancel = strlen(btn_txt_cancel);
+
+       newtComponent btn_ok = newtButton((width / 3) - (btn_width_ok / 2) - 2, height - 4, btn_txt_ok);
+       newtComponent btn_cancel = newtButton((width * 2 / 3) - (btn_width_cancel / 2) - 2, height - 4,
+               btn_txt_cancel);
+
+       newtFormAddComponents(form, btn_ok, btn_cancel, NULL);
+
+       newtComponent answer = newtRunForm(form);
+
+       if (answer == btn_ok) {
+               ret = 0;
+       }
+
+       newtFormDestroy(form);
+       newtPopWindow();
+
+       return ret;
+}
+
+static int newtLicenseBox(const char* title, const char* text, int width, int height) {
+       int ret = 1;
+
+       newtCenteredWindow(width, height, title);
+
+       newtComponent form = newtForm(NULL, NULL, 0);
+
+       newtComponent textbox = newtTextbox(1, 1, width - 2, height - 7,
+               NEWT_FLAG_WRAP|NEWT_FLAG_SCROLL);
+       newtTextboxSetText(textbox, text);
+       newtFormAddComponent(form, textbox);
+
+       char choice;
+       newtComponent checkbox = newtCheckbox(3, height - 3, _("I accept this license"),
+               ' ', " *", &choice);
+
+       newtComponent btn = newtButton(width - 15, height - 4, _("OK"));
+
+       newtFormAddComponents(form, checkbox, btn, NULL);
+
+       newtComponent answer = newtRunForm(form);
+       if (answer == btn && choice == '*')
+               ret = 0;
+
+       newtFormDestroy(form);
+       newtPopWindow();
+
+       return ret;
+}
+
+int write_lang_configs(const char *lang) {
+       struct keyvalue *kv = initkeyvalues();
+
+       /* default stuff for main/settings. */
+       replacekeyvalue(kv, "LANGUAGE", lang);
+       replacekeyvalue(kv, "HOSTNAME", SNAME);
+       replacekeyvalue(kv, "THEME", "ipfire");
+       writekeyvalues(kv, "/harddisk" CONFIG_ROOT "/main/settings");
+       freekeyvalues(kv);
+
+       return 1;
+}
+
+static char* get_system_release() {
+       char system_release[STRING_SIZE] = "\0";
+
+       FILE* f = fopen("/etc/system-release", "r");
+       if (f) {
+               fgets(system_release, sizeof(system_release), f);
+               fclose(f);
+       }
+
+       return strdup(system_release);
+}
+
+static char* center_string(const char* str, int width) {
+       unsigned int str_len = strlen(str);
+
+       unsigned int indent_length = (width - str_len) / 2;
+       char indent[indent_length + 1];
+
+       for (unsigned int i = 0; i < indent_length; i++) {
+               indent[i] = ' ';
+       }
+       indent[indent_length] = '\0';
+
+       char* string = NULL;
+       if (asprintf(&string, "%s%s", indent, str) < 0)
+               return NULL;
+
+       return string;
+}
+
+#define DEFAULT_LANG "English"
+#define NUM_LANGS 8
+
+static struct lang {
+       const char* code;
+       char* name;
+} languages[NUM_LANGS + 1] = {
+       { "da.utf8",    "Danish (Dansk)" },
+       { "nl_NL.utf8", "Dutch (Nederlands)" },
+       { "en_US.utf8", "English" },
+       { "fr_FR.utf8", "French (Français)" },
+       { "de_DE.utf8", "German (Deutsch)" },
+       { "pl_PL.utf8", "Polish (Polski)" },
+       { "pt_BR.utf8", "Portuguese (Brasil)" },
+       { "ru_RU.utf8", "Russian (Русский)" },
+       { "es_ES.utf8", "Spanish (Español)" },
+       { "tr_TR.utf8", "Turkish (Türkçe)" },
+       { NULL, NULL },
+};
+
+int main(int argc, char *argv[]) {
+       struct hw* hw = hw_init();
+       const char* logfile = NULL;
+
+       // Read /etc/system-release
+       char* system_release = get_system_release();
+
+       char discl_msg[40000] = "Disclaimer\n";
+
+       char* sourcedrive = NULL;
+       int rc = 0;
+       char commandstring[STRING_SIZE];
+       int choice;
+       char shortlangname[10];
+       char message[STRING_SIZE];
+       char title[STRING_SIZE];
+       int allok = 0;
+       FILE *handle, *cmdfile, *copying;
+       char line[STRING_SIZE];
+               
+       int unattended = 0;
+       int serialconsole = 0;
+       struct keyvalue *unattendedkv = initkeyvalues();
+       char restore_file[STRING_SIZE] = "";
+
+       setlocale (LC_ALL, "");
+       sethostname( SNAME , 10);
+
+       /* Log file/terminal stuff. */
+       FILE* flog = NULL;
+       if (argc >= 2) {
+               logfile = argv[1];
+
+               if (!(flog = fopen(logfile, "w+")))
+                       return 0;
+       } else {
+               return 0;
+       }
+
+       fprintf(flog, "Install program started.\n");
+               
+       newtInit();
+       newtCls();
+
+       // Determine the size of the screen
+       int screen_cols = 0;
+       int screen_rows = 0;
+
+       newtGetScreenSize(&screen_cols, &screen_rows);
+
+       // Draw title
+       char* roottext = center_string(system_release, screen_cols);
+       newtDrawRootText(0, 0, roottext);
+
+       snprintf(title, sizeof(title), "%s - %s", NAME, SLOGAN);
+
+       if (! (cmdfile = fopen("/proc/cmdline", "r")))
+       {
+               fprintf(flog, "Couldn't open commandline: /proc/cmdline\n");
+       } else {
+               fgets(line, STRING_SIZE, cmdfile);
+               
+               // check if we have to make an unattended install
+               if (strstr (line, "unattended") != NULL) {
+                   unattended = 1;
+                   runcommandwithstatus("/bin/sleep 10", title, "WARNING: Unattended installation will start in 10 seconds...", NULL);
+               }               
+               // check if we have to patch for serial console
+               if (strstr (line, "console=ttyS0") != NULL) {
+                   serialconsole = 1;
+               }
+       }
+
+       // Load common modules
+       mysystem(logfile, "/sbin/modprobe vfat"); // USB key
+       hw_stop_all_raid_arrays(logfile);
+
+       if (!unattended) {
+               // Language selection
+               char* langnames[NUM_LANGS + 1];
+
+               for (unsigned int i = 0; i < NUM_LANGS; i++) {
+                       if (strcmp(languages[i].name, DEFAULT_LANG) == 0)
+                               choice = i;
+
+                       langnames[i] = languages[i].name;
+               }
+               langnames[NUM_LANGS] = NULL;
+
+           rc = newtWinMenu(_("Language selection"), _("Select the language you wish to use for the installation."),
+                       50, 5, 5, 8, langnames, &choice, _("OK"), NULL);
+
+               assert(choice <= NUM_LANGS);
+
+               fprintf(flog, "Selected language: %s (%s)\n", languages[choice].name, languages[choice].code);
+
+               setenv("LANGUAGE", languages[choice].code, 1);
+               setlocale(LC_ALL, languages[choice].code);
+       }
+
+       char* helpline = center_string(_("<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"), screen_cols);
+       newtPushHelpLine(helpline);
+
+       if (!unattended) {
+               snprintf(message, sizeof(message),
+                       _("Welcome to the %s installation program.\n\n"
+                       "Selecting Cancel on any of the following screens will reboot the computer."), NAME);
+               newtWinMessage(title, _("Start installation"), message);
+       }
+
+       /* Search for a source drive that holds the right
+        * version of the image we are going to install. */
+       sourcedrive = hw_find_source_medium(hw);
+
+       fprintf(flog, "Source drive: %s\n", sourcedrive);
+       if (!sourcedrive) {
+               newtWinMessage(title, _("OK"), _("No local source media found. Starting download."));
+               runcommandwithstatus("/bin/downloadsource.sh", title, _("Downloading installation image ..."), logfile);
+               if ((handle = fopen("/tmp/source_device", "r")) == NULL) {
+                       errorbox(_("Download error"));
+                       goto EXIT;
+               }
+
+               fgets(sourcedrive, 5, handle);
+               fclose(handle);
+       }
+
+       assert(sourcedrive);
+
+       int r = hw_mount(sourcedrive, SOURCE_MOUNT_PATH, "iso9660", MS_RDONLY);
+       if (r) {
+               fprintf(flog, "Could not mount %s to %s\n", sourcedrive, SOURCE_MOUNT_PATH);
+               fprintf(flog, strerror(errno));
+               exit(1);
+       }
+
+       /* load unattended configuration */
+       if (unattended) {
+           fprintf(flog, "unattended: Reading unattended.conf\n");
+
+           (void) readkeyvalues(unattendedkv, UNATTENDED_CONF);
+           findkey(unattendedkv, "RESTORE_FILE", restore_file);
+       }
+
+       if (!unattended) {
+               // Read the license file.
+               if (!(copying = fopen(LICENSE_FILE, "r"))) {
+                       sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE);
+                       fprintf(flog, discl_msg);
+               } else {
+                       fread(discl_msg, 1, 40000, copying);
+                       fclose(copying);
+
+                       if (newtLicenseBox(_("License Agreement"), discl_msg, 75, 20)) {
+                               errorbox(_("License not accepted!"));
+
+                               goto EXIT;
+                       }
+               }
+       }
+
+       int part_type = HW_PART_TYPE_NORMAL;
+
+       // Scan for disks to install on.
+       struct hw_disk** disks = hw_find_disks(hw, sourcedrive);
+
+       struct hw_disk** selected_disks = NULL;
+       unsigned int num_selected_disks = 0;
+
+       // Check how many disks have been found and what
+       // we can do with them.
+       unsigned int num_disks = hw_count_disks(disks);
+
+       while (1) {
+               // no harddisks found
+               if (num_disks == 0) {
+                       errorbox(_("No hard disk found."));
+                       goto EXIT;
+
+               // exactly one disk has been found
+               } else if (num_disks == 1) {
+                       selected_disks = hw_select_disks(disks, NULL);
+
+               // more than one usable disk has been found and
+               // the user needs to choose what to do with them
+               } else {
+                       const char* disk_names[num_disks];
+                       int disk_selection[num_disks];
+
+                       for (unsigned int i = 0; i < num_disks; i++) {
+                               disk_names[i] = &disks[i]->description;
+                               disk_selection[i] = 0;
+                       }
+
+                       while (!selected_disks) {
+                               rc = newtChecklist(_("Disk Selection"),
+                                       _("Select the disk(s) you want to install IPFire on. "
+                                       "First those will be partitioned, and then the partitions will have a filesystem put on them.\n\n"
+                                       "ALL DATA ON THE DISK WILL BE DESTROYED."),
+                                       50, 20, num_disks, disk_names, disk_selection);
+
+                               // Error
+                               if (rc < 0) {
+                                       goto EXIT;
+
+                               // Nothing has been selected
+                               } else if (rc == 0) {
+                                       errorbox(_("No disk has been selected.\n\n"
+                                               "Please select one or more disks you want to install IPFire on."));
+
+                               } else {
+                                       selected_disks = hw_select_disks(disks, disk_selection);
+                               }
+                       }
+               }
+
+               num_selected_disks = hw_count_disks(selected_disks);
+
+               if (num_selected_disks == 1) {
+                       snprintf(message, sizeof(message),
+                               _("The installation program will now prepare the chosen harddisk:\n\n  %s\n\n"
+                               "Do you agree to continue?"), (*selected_disks)->description);
+                       rc = newtWinOkCancel(_("Disk Setup"), message, 50, 10,
+                               _("Delete all data"), _("Cancel"));
+
+                       if (rc == 0)
+                               break;
+
+               } else if (num_selected_disks == 2) {
+                       snprintf(message, sizeof(message),
+                               _("The installation program will now set up a RAID configuration on the selected harddisks:\n\n  %s\n  %s\n\n"
+                               "Do you agree to continue?"), selected_disks[0]->description, selected_disks[1]->description);
+                       rc = newtWinOkCancel(_("RAID Setup"), message, 50, 14,
+                               _("Delete all data"), _("Cancel"));
+
+                       if (rc == 0) {
+                               part_type = HW_PART_TYPE_RAID1;
+
+                               break;
+                       }
+
+               // Currently not supported
+               } else {
+                       errorbox(_("You disk configuration is currently not supported."));
+                       fprintf(flog, "Num disks selected: %d\n", num_selected_disks);
+               }
+
+               if (selected_disks) {
+                       hw_free_disks(selected_disks);
+                       selected_disks = NULL;
+               }
+       }
+
+       hw_free_disks(disks);
+
+       struct hw_destination* destination = hw_make_destination(part_type, selected_disks);
+
+       if (!destination) {
+               errorbox(_("Your harddisk is too small."));
+               goto EXIT;
+       }
+
+       fprintf(flog, "Destination drive: %s\n", destination->path);
+       fprintf(flog, "  bootldr: %s (%lluMB)\n", destination->part_bootldr, BYTES2MB(destination->size_bootldr));
+       fprintf(flog, "  boot   : %s (%lluMB)\n", destination->part_boot, BYTES2MB(destination->size_boot));
+       fprintf(flog, "  swap   : %s (%lluMB)\n", destination->part_swap, BYTES2MB(destination->size_swap));
+       fprintf(flog, "  root   : %s (%lluMB)\n", destination->part_root, BYTES2MB(destination->size_root));
+       fprintf(flog, "  data   : %s (%lluMB)\n", destination->part_data, BYTES2MB(destination->size_data));
+
+       // Warn the user if there is not enough space to create a swap partition
+       if (!unattended && !*destination->part_swap) {
+               rc = newtWinChoice(title, _("OK"), _("Cancel"),
+                       _("Your harddisk is very small, but you can continue without a swap partition."));
+
+               if (rc != 1)
+                       goto EXIT;
+       }
+
+       // Filesystem selection
+       if (!unattended) {
+               struct filesystems {
+                       int fstype;
+                       const char* description;
+               } filesystems[] = {
+                       { HW_FS_EXT4,            _("ext4 Filesystem") },
+                       { HW_FS_EXT4_WO_JOURNAL, _("ext4 Filesystem without journal") },
+                       { HW_FS_XFS,             _("XFS Filesystem") },
+                       { HW_FS_REISERFS,        _("ReiserFS Filesystem") },
+                       { 0, NULL },
+               };
+               unsigned int num_filesystems = sizeof(filesystems) / sizeof(*filesystems);
+
+               char* fs_names[num_filesystems];
+               int fs_choice = 0;
+               for (unsigned int i = 0; i < num_filesystems; i++) {
+                       if (HW_FS_DEFAULT == filesystems[i].fstype)
+                               fs_choice = i;
+
+                       fs_names[i] = filesystems[i].description;
+               }
+
+               rc = newtWinMenu(_("Filesystem Selection"), _("Please choose your filesystem:"),
+                       50, 5, 5, 6, fs_names, &fs_choice, _("OK"), _("Cancel"), NULL);
+
+               if (rc == 2)
+                       goto EXIT;
+
+               destination->filesystem = filesystems[fs_choice].fstype;
+       }
+
+       // Setting up RAID if needed.
+       if (destination->is_raid) {
+               statuswindow(60, 4, title, _("Building RAID..."));
+
+               rc = hw_setup_raid(destination, logfile);
+               if (rc) {
+                       errorbox(_("Unable to build the RAID."));
+                       goto EXIT;
+               }
+
+               newtPopWindow();
+       } else {
+               // We will have to destroy all RAID setups that may have
+               // been on the devices that we want to use now.
+               hw_destroy_raid_superblocks(destination, logfile);
+       }
+
+       // Execute the partitioning...
+       statuswindow(60, 4, title, _("Partitioning disk..."));
+
+       rc = hw_create_partitions(destination, logfile);
+       if (rc) {
+               errorbox(_("Unable to partition the disk."));
+               goto EXIT;
+       }
+
+       newtPopWindow();
+
+       // Execute the formatting...
+       statuswindow(60, 4, title, _("Creating filesystems..."));
+
+       rc = hw_create_filesystems(destination, logfile);
+       if (rc) {
+               errorbox(_("Unable to create filesystems."));
+               goto EXIT;
+       }
+
+       rc = hw_mount_filesystems(destination, DESTINATION_MOUNT_PATH);
+       if (rc) {
+               errorbox(_("Unable to mount filesystems."));
+               goto EXIT;
+       }
+
+       newtPopWindow();
+
+       // Extract files...
+       snprintf(commandstring, STRING_SIZE,
+               "/bin/tar -C /harddisk  -xvf /cdrom/distro.img --lzma 2>/dev/null");
+
+       if (runcommandwithprogress(60, 4, title, commandstring, INST_FILECOUNT,
+                       _("Installing the system..."), logfile)) {
+               errorbox(_("Unable to install the system."));
+               goto EXIT;
+       }
+
+       // Write fstab
+       rc = hw_write_fstab(destination);
+       if (rc) {
+               fprintf(flog, "Could not write /etc/fstab\n");
+               goto EXIT;
+       }
+
+       /* Save language und local settings */
+       write_lang_configs(shortlangname);
+
+       /* Build cache lang file */
+       snprintf(commandstring, STRING_SIZE, "/usr/sbin/chroot /harddisk /usr/bin/perl -e \"require '" CONFIG_ROOT "/lang.pl'; &Lang::BuildCacheLang\"");
+       if (runcommandwithstatus(commandstring, title, _("Installing the language cache..."), logfile)) {
+               errorbox(_("Unable to install the language cache."));
+               goto EXIT;
+       }
+
+       // Installing bootloader...
+       statuswindow(60, 4, title, _("Installing the bootloader..."));
+
+       /* Serial console ? */
+       if (serialconsole) {
+               /* grub */
+               FILE* f = fopen(DESTINATION_MOUNT_PATH "/etc/default/grub", "a");
+               if (!f) {
+                       errorbox(_("Unable to open /etc/default/grub for writing."));
+                       goto EXIT;
+               }
+
+               fprintf(f, "GRUB_TERMINAL=\"serial console\"\n");
+               fprintf(f, "GRUB_SERIAL_COMMAND=\"serial --unit=0 --speed=%d\"\n", SERIAL_BAUDRATE);
+               fclose(f);
+
+               replace(DESTINATION_MOUNT_PATH "/etc/default/grub", "panic=10", "panic=10 console=ttyS0,115200n8");
+
+               /* inittab */
+               replace("/harddisk/etc/inittab", "1:2345:respawn:", "#1:2345:respawn:");
+               replace("/harddisk/etc/inittab", "2:2345:respawn:", "#2:2345:respawn:");
+               replace("/harddisk/etc/inittab", "3:2345:respawn:", "#3:2345:respawn:");
+               replace("/harddisk/etc/inittab", "4:2345:respawn:", "#4:2345:respawn:");
+               replace("/harddisk/etc/inittab", "5:2345:respawn:", "#5:2345:respawn:");
+               replace("/harddisk/etc/inittab", "6:2345:respawn:", "#6:2345:respawn:");
+               replace("/harddisk/etc/inittab", "#7:2345:respawn:", "7:2345:respawn:");
+       }
+
+       rc = hw_install_bootloader(destination, logfile);
+       if (rc) {
+               errorbox(_("Unable to install the bootloader."));
+               goto EXIT;
+       }
+
+       newtPopWindow();
+
+       /* Set marker that the user has already accepted the gpl */
+       mysystem(logfile, "/usr/bin/touch /harddisk/var/ipfire/main/gpl_accepted");
+
+       /* Copy restore file from cdrom */
+       if (unattended && (strlen(restore_file) > 0)) {
+               fprintf(flog, "unattended: Copy restore file\n");
+               snprintf(commandstring, STRING_SIZE, 
+                       "cp /cdrom/%s /harddisk/var/ipfire/backup", restore_file);
+               mysystem(logfile, commandstring);
+       }
+
+       // Umount the destination drive
+       hw_umount_filesystems(destination, DESTINATION_MOUNT_PATH);
+
+       // Stop the RAID array if we are using RAID
+       if (destination->is_raid)
+               hw_stop_all_raid_arrays(logfile);
+
+       // Umount source drive and eject
+       hw_umount(SOURCE_MOUNT_PATH);
+
+       snprintf(commandstring, STRING_SIZE, "/usr/bin/eject %s", sourcedrive);
+       mysystem(logfile, commandstring);
+
+       if (!unattended) {
+               snprintf(message, sizeof(message), _(
+                       "%s was successfully installed!\n\n"
+                       "Please remove any installation mediums from this system and hit the reboot button. "
+                       "Once the system has restarted you will be asked to setup networking and system passwords. "
+                       "After that, you should point your web browser at https://%s:444 (or what ever you name "
+                       "your %s) for the web configuration console."), NAME, SNAME, NAME);
+               newtWinMessage(_("Congratulations!"), _("Reboot"), message);
+       }
+
+       allok = 1;
+
+EXIT:
+       fprintf(flog, "Install program ended.\n");
+       fflush(flog);
+       fclose(flog);
+
+       if (!allok)
+               newtWinMessage(title, _("OK"), _("Setup has failed. Press Ok to reboot."));
+
+       newtFinished();
+
+       // Free resources
+       free(system_release);
+       free(roottext);
+       free(helpline);
+
+       free(sourcedrive);
+       free(destination);
+
+       hw_stop_all_raid_arrays(logfile);
+
+       if (selected_disks)
+               hw_free_disks(selected_disks);
+
+       hw_free(hw);
+
+       fcloseall();
+
+       if (allok == 1)
+               return 0;
+
+       return 1;
+}
diff --git a/src/installer/po/LINGUAS b/src/installer/po/LINGUAS
new file mode 100644 (file)
index 0000000..1aa1306
--- /dev/null
@@ -0,0 +1,30 @@
+ar
+ca
+cs_CZ
+da
+de
+el_GR
+es
+fa
+fr
+hu
+id
+it
+ja
+km_KH
+nl
+pl
+pt_BR
+pt_PT
+ro_RO
+ru
+sk
+sq
+sv
+th
+tk
+tr
+uk
+uz@Latn
+vi
+zh
diff --git a/src/installer/po/Makevars b/src/installer/po/Makevars
new file mode 100644 (file)
index 0000000..cf8c600
--- /dev/null
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = The IPFire Project (www.ipfire.org)
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/src/installer/po/POTFILES.in b/src/installer/po/POTFILES.in
new file mode 100644 (file)
index 0000000..e241137
--- /dev/null
@@ -0,0 +1 @@
+main.c
diff --git a/src/installer/po/ar.po b/src/installer/po/ar.po
new file mode 100644 (file)
index 0000000..a10146e
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Arabic (http://www.transifex.com/projects/p/ipfire/language/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/ca.po b/src/installer/po/ca.po
new file mode 100644 (file)
index 0000000..54e3699
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Catalan (http://www.transifex.com/projects/p/ipfire/language/ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/cs_CZ.po b/src/installer/po/cs_CZ.po
new file mode 100644 (file)
index 0000000..101c98d
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/ipfire/language/cs_CZ/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs_CZ\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/da.po b/src/installer/po/da.po
new file mode 100644 (file)
index 0000000..d15c917
--- /dev/null
@@ -0,0 +1,243 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Henrik Simonsen <cybermaze@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/ipfire/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr "OK"
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr "Annuller"
+
+#: main.c:145
+msgid "I accept this license"
+msgstr "Jeg accepterer brugerlicensen"
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr "<Tab>/<Alt-Tab> mellem elementer | <Space> vælger | <F12> næste skærm"
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr "Start installationen"
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr "Fandt ikke en lokal kilde. Henter fra internettet."
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr "Henter installationsbillede ..."
+
+#: main.c:342
+msgid "Download error"
+msgstr "Fejl under hentning"
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr "Brugerlicensen ikke accepteret!"
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr "Fandt ikke en harddisk."
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr "Vælg harddisk"
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr "Vælg den eller de harddisk(e) du vil installere IPFire på. Diskene bliver først partitioneret og dernæst bliver der oprettet filsystemer.\n\nAL DATA PÅ DISKENE BLIVER SLETTET."
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr "Ingen harddisk valgt.\n\nVælg venligst en eller flere harddiske du vil installere IPFire på."
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "Installationsprogrammet forbereder nu den eller de valgte harddiske:\n\n%s\n\nVil du fortsætte?"
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr "Harddisk opsætning"
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr "Slet alle data"
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "Installationsprogrammet vil nu opsætte RAID konfigurationen på de valgte harddiske:\n\n%s\n%s\n\nVil du fortsætte?"
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr "RAID opsætning"
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr "Din harddisk konfiguration understøttes ikke pt."
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr "Din harddisk er for lille."
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr "ext4 filsystem"
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr "ext4 filsystem uden journal"
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr "XFS filsystem"
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr "ReiserFS filsystem"
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr "Vælg filsystem"
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr "Vælg venligst et filsystem:"
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr "Bygger RAID..."
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr "Kunne ikke bygge RAID."
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr "Partitionerer harddisk..."
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr "Kunne ikke partitionere harddisk."
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr "Opretter filsystemer..."
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr "Kunne ikke oprette filsystemer."
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr "Kunne ikke forbinde til filsystemer."
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr "Installerer systemet..."
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr "Kunne ikke installere systemet."
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr "Installerer sprog arkivet..."
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr "Kunne ikke installere sprog arkivet."
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr "Installerer bootloader..."
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr "Kunne ikke installere bootloader."
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr "Tillykke!"
+
+#: main.c:671
+msgid "Reboot"
+msgstr "Genstart"
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/de.po b/src/installer/po/de.po
new file mode 100644 (file)
index 0000000..f4487a0
--- /dev/null
@@ -0,0 +1,244 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Michael Tremer <michael.tremer@ipfire.org>, 2014
+# Stefan Schantl <stefan.schantl@ipfire.org>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 16:04+0000\n"
+"Last-Translator: Stefan Schantl <stefan.schantl@ipfire.org>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/ipfire/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr "OK"
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: main.c:145
+msgid "I accept this license"
+msgstr "Ich akzeptiere die Lizenz"
+
+#: main.c:312
+msgid "Language selection"
+msgstr "Sprachauswahl"
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr "Wählen Sie die gewünschte Sprache für den Installationsprozess aus."
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr "<Tab>/<Alt-Tab> um zu wechseln | <Leertaste> wählt aus | <F12> nächster Bildschirm"
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr "Willkommen zum %s Installationsprogramm.\n\nWenn Sie auf irgendeiner der folgenden Seiten 'Abbrechen' auswählen, wird der Computer neu gestartet."
+
+#: main.c:330
+msgid "Start installation"
+msgstr "Installation beginnen"
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr "Kein lokales Quellmedium gefunden. Starte Download."
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr "Lade Installationsimage herunter..."
+
+#: main.c:342
+msgid "Download error"
+msgstr "Fehler beim Download"
+
+#: main.c:376
+msgid "License Agreement"
+msgstr "Lizenzvereinbarung"
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr "Lizenz nicht akzeptiert!"
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr "Es wurde keine Festplatte gefunden."
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr "Festplattenauswahl"
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr "Wählen Sie die Festplatte(n) auf denen IPFire installiert werden soll. Diese wird/werden zuerst partitioniert und danach mit einem Dateisystem ausgestattet.\n\nSÄMTLICHE DATEN AUF DER FESTPLATTE GEHEN VERLOREN."
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr "Keine Festplatte ausgewählt.\n\nBitte wählen Sie eine oder mehrere Festplatten auf denen IPFire installiert werden soll aus."
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "Das Installationsprogramm wird die folgende  Festplatte nun vorbereiten:\n\n%s\n\nMöchten Sie damit fortfahren?"
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr "Disk-Setup"
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr "Alle Daten löschen"
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "Das Installationsprogramm wird nun einen RAID Verbund auf den folgenden Festplatten erstellen:\n\n%s\n%s\n\nMöchten Sie damit fortfahren?"
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr "RAID-Setup"
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr "Die gewählte Festplattenkonstellation wird momentan nicht unterstützt."
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr "Ihre Festplatte ist zu klein."
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr "Die gewählte Festplatte ist sehr klein, die Installation kann aber ohne Swap Partition fortgesetzt werden."
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr "ext4-Dateisystem"
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr "ext4-Dateisystem ohne Journal"
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr "XFS-Dateisystem"
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr "ReiserFS-Dateisystem"
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr "Dateisystemauswahl"
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr "Bitte wählen Sie ein Dateisystem:"
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr "Erstelle RAID..."
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr "Das RAID konnte nicht erstellt werden."
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr "Partitioniere die Festplatte..."
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr "Die Festplatte konnte nicht partitioniert werden."
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr "Erstelle Dateisysteme..."
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr "Die Dateisysteme konnten nicht erstellt werden."
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr "Die Dateisysteme konnten nicht eingehangen werden."
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr "Installiere das System..."
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr "Das System konnte nicht installiert werden."
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr "Installiere den Sprachdateicache..."
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr "Der Sprachdateicache konnte nicht erstellt werden."
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr "Installiere den Bootloader..."
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr "/etc/default/grub konnte nicht geschrieben werden."
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr "Der Bootloader konnte nicht installiert werden."
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr "%s wurde erfolgreich installiert.\n\nEntfernen Sie bitte alle Installionsmedian aus dem Computer und drücken Sie den \"Neustarten\" Knopf . \n\nNach dem erfolgten Neustart wird das Setup-Programm gestartet, in dem Sie Netzwerkkarten und die Systempasswörter konfigurieren können. Sobald dies fertiggestellt ist, können Sie in Ihrem Webbrowser die Weboberfläche mit https://%s:444 (oder welchen Namen Sie Ihrem %s auch immer gegeben haben) erreichen."
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr "Herzlichen Glückwunsch!"
+
+#: main.c:671
+msgid "Reboot"
+msgstr "Neustarten"
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr "Installation fehlgeschlagen. Drücken Sie \"OK\" für einen Neustart des Systems."
diff --git a/src/installer/po/el_GR.po b/src/installer/po/el_GR.po
new file mode 100644 (file)
index 0000000..d27fe7b
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Greek (Greece) (http://www.transifex.com/projects/p/ipfire/language/el_GR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: el_GR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/es.po b/src/installer/po/es.po
new file mode 100644 (file)
index 0000000..d4812af
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/ipfire/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/fa.po b/src/installer/po/fa.po
new file mode 100644 (file)
index 0000000..81d3631
--- /dev/null
@@ -0,0 +1,243 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Khalil Delavaran <khalil.delavaran@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/ipfire/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr "بله"
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr "نمی خواهم"
+
+#: main.c:145
+msgid "I accept this license"
+msgstr "من این پروانه را می پذیرم."
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr "<Tab>/<Alt-Tab> میان عنصری  | <Space> گزینش | <F12>  برای برگه پسین"
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr "آغاز برپا سازی"
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr "هیچ رسانه محلی یافت نشد. دانلود آغاز شد."
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr "در حال دانلود ایمیج برای برپا سازی..."
+
+#: main.c:342
+msgid "Download error"
+msgstr "ایراد در دانلود"
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr "پروانه پذیرفته نشد!"
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr "هارد دیسک یافت نشد."
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr "گزینش دیسک"
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr "دیسک (های) را برای برپاسازی IPFire گزینش کنید. نخست آنها را پارنیشین بندی کرده، و سپس، سیستم فایلی برای پارتیشن ها برگزینید.\n\nهمه داده های دیسک پاک می شوند."
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr "هیچ دیسکی گزینش نشده است.\n\nخواهشمند است یک دیسک یا بیشتر را برای برپا سازی IPFire گزینش کنید."
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "آماده سازی دیسک سخت برای برپا سازی برنامه :\n\n%s\n\nآیا شما گرایش به ادامه دارید؟"
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr "پیکربندی دیسک"
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr "پاک کردن همه داده ها"
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "پیکربندی RAID بر روی هارد دیسکهای گزینش شده برای برپا سازی برنامه\n\n%s\n%s\n\nآیا شما گرایش به ادامه دارید؟"
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr "پیکربندی RAID"
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr "پیکربندی دیسک شما پشتیبانی نمی شود."
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr "هارد دیسک شما بسیار کوچک است."
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr "فایل سیستم ext4"
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr "سیستم فایل ext4 بدون روزنامه"
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr "فایل سیستم XFS"
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr "فایل سیستم RaiserFS"
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr "گزینش فایل سیستم"
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr "خواهشمند است فایل سیستم خود را گزینش کنید:"
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr "ساخت RAID..."
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr "ناتوانی در ساخت RAID."
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr "پارتیشن بندی دیسک..."
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr "ناتوانی در پارتیشین بندی دیسک."
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr "ساخت سیستم فایل..."
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr "ناتوانی در ساخت سیستم فایل."
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr "ناتوانی در مونت کردن سیستم فایل."
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr "برپا سازی سیستم..."
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr "ناتوانی در برپاسازی سیستم."
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr "در حال برپا سازی کش زبان..."
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr "ناتوانی در برپا سازی کش زبان."
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr "برپا سازی بوت لودر..."
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr "ناتوانی در برپا سازی بوت لودر."
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr "شادباش می گوییم!"
+
+#: main.c:671
+msgid "Reboot"
+msgstr "ریبوت"
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/fr.po b/src/installer/po/fr.po
new file mode 100644 (file)
index 0000000..a4af363
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/ipfire/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/hu.po b/src/installer/po/hu.po
new file mode 100644 (file)
index 0000000..ac25009
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Hungarian (http://www.transifex.com/projects/p/ipfire/language/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/id.po b/src/installer/po/id.po
new file mode 100644 (file)
index 0000000..28d9ae3
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Indonesian (http://www.transifex.com/projects/p/ipfire/language/id/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: id\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/it.po b/src/installer/po/it.po
new file mode 100644 (file)
index 0000000..70d0098
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Italian (http://www.transifex.com/projects/p/ipfire/language/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/ja.po b/src/installer/po/ja.po
new file mode 100644 (file)
index 0000000..6cdadf5
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Japanese (http://www.transifex.com/projects/p/ipfire/language/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/km_KH.po b/src/installer/po/km_KH.po
new file mode 100644 (file)
index 0000000..0f7f946
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Khmer (Cambodia) (http://www.transifex.com/projects/p/ipfire/language/km_KH/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: km_KH\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/nl.po b/src/installer/po/nl.po
new file mode 100644 (file)
index 0000000..6e2f7ea
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Dutch (http://www.transifex.com/projects/p/ipfire/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/pl.po b/src/installer/po/pl.po
new file mode 100644 (file)
index 0000000..cfad680
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/ipfire/language/pl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/pt_BR.po b/src/installer/po/pt_BR.po
new file mode 100644 (file)
index 0000000..0152ede
--- /dev/null
@@ -0,0 +1,244 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# André Felipe Morro <andre@andremorro.com>, 2014
+# Leandro Luquetti Basilio da Silva <leandroluquetti@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/ipfire/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr "Ok"
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: main.c:145
+msgid "I accept this license"
+msgstr "Eu aceito esta licença"
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr "<Tab>/<Alt-Tab> entre os elementos | <Space> Selecione | <F12> próxima tela"
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr "Iniciar a instalação"
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr "Nenhuma fonte de mídia local encontrada. Iniciando download."
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr "Baixando imagem de instalação ..."
+
+#: main.c:342
+msgid "Download error"
+msgstr "Erro de download"
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr "Licença não aceita!"
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr "Nenhum disco rígido foi encontrado."
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr "Seleção de disco"
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr "Selecione o disco(s) que deseja instalar o IPFire. Primeiramente o mesmo será particionado, e então, as partições terão um sistema de arquivos que você escolher. \n\nTODOS OS DADOS NO DISCO SERÃO DESTRUÍDOS."
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr "Nenhum disco foi selecionado.\n\nPor favor seleccione um ou mais discos que você deseja instalar o IPFire."
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "O programa de instalação irá agora preparar o disco rígido escolhido:\n\n%s \n\nVocê concorda em continuar?"
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr "Configuração de Discos"
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr "Apagar todos os dados"
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr "O programa de instalação ira agora definir uma configuração de RAID nos discos rígidos selecionados:\n\n%s\n%s\n \nVocê concorda continuar?"
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr "Configuração de RAID"
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr "Sua configuração de disco não é suportada atualmente."
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr "Seu disco rígido é muito pequeno."
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr "Sistema de arquivos ext4"
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr "Sistema de arquivos ext4 sem journal"
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr "Sistema de arquivos XFS"
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr "Sistema de arquivos ReiserFS"
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr "Seleção do sistema de arquivos"
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr "Por favor, escolha o seu sistema de arquivos:"
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr "Construindo o RAID..."
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr "Não foi possível construir o RAID."
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr "Particionando o disco..."
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr "Não foi possível particionar o disco."
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr "Criando o sistema de arquivos..."
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr "Não foi possível criar sistemas de arquivos."
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr "Não foi possível montar sistemas de arquivos."
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr "Instalando o sistema..."
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr "Não é possível instalar o sistema."
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr "Instalando o cache de linguagem..."
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr "Não foi possível instalar o cache de linguagem."
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr "Instalando o gerenciador de inicialização..."
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr "Não foi possível instalar o gerenciador de inicialização."
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr "Parabéns!"
+
+#: main.c:671
+msgid "Reboot"
+msgstr "Reiniciar"
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/pt_PT.po b/src/installer/po/pt_PT.po
new file mode 100644 (file)
index 0000000..ee41d97
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/ipfire/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/ro_RO.po b/src/installer/po/ro_RO.po
new file mode 100644 (file)
index 0000000..7fc70c8
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/ipfire/language/ro_RO/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ro_RO\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/ru.po b/src/installer/po/ru.po
new file mode 100644 (file)
index 0000000..e3e0a8b
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Russian (http://www.transifex.com/projects/p/ipfire/language/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/sk.po b/src/installer/po/sk.po
new file mode 100644 (file)
index 0000000..86d37cd
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Slovak (http://www.transifex.com/projects/p/ipfire/language/sk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/sq.po b/src/installer/po/sq.po
new file mode 100644 (file)
index 0000000..8ac31c1
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Albanian (http://www.transifex.com/projects/p/ipfire/language/sq/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sq\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/sv.po b/src/installer/po/sv.po
new file mode 100644 (file)
index 0000000..25e0ad4
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/ipfire/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/th.po b/src/installer/po/th.po
new file mode 100644 (file)
index 0000000..2a88dca
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Thai (http://www.transifex.com/projects/p/ipfire/language/th/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: th\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/tk.po b/src/installer/po/tk.po
new file mode 100644 (file)
index 0000000..e07df58
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Turkmen (http://www.transifex.com/projects/p/ipfire/language/tk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/tr.po b/src/installer/po/tr.po
new file mode 100644 (file)
index 0000000..99a100a
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/ipfire/language/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/uk.po b/src/installer/po/uk.po
new file mode 100644 (file)
index 0000000..e6c955a
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Ukrainian (http://www.transifex.com/projects/p/ipfire/language/uk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uk\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/uz@Latn.po b/src/installer/po/uz@Latn.po
new file mode 100644 (file)
index 0000000..2bdb551
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Uzbek (Latin) (http://www.transifex.com/projects/p/ipfire/language/uz@Latn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uz@Latn\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/vi.po b/src/installer/po/vi.po
new file mode 100644 (file)
index 0000000..197382b
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Vietnamese (http://www.transifex.com/projects/p/ipfire/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/zh.po b/src/installer/po/zh.po
new file mode 100644 (file)
index 0000000..3148f14
--- /dev/null
@@ -0,0 +1,242 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:09+0000\n"
+"PO-Revision-Date: 2014-08-21 15:11+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Chinese (http://www.transifex.com/projects/p/ipfire/language/zh/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:77 main.c:148 main.c:313 main.c:339 main.c:493 main.c:524 main.c:682
+msgid "OK"
+msgstr ""
+
+#: main.c:78 main.c:446 main.c:456 main.c:493 main.c:524
+msgid "Cancel"
+msgstr ""
+
+#: main.c:145
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:312
+msgid "Language selection"
+msgstr ""
+
+#: main.c:312
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:323
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:328
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:330
+msgid "Start installation"
+msgstr ""
+
+#: main.c:339
+msgid "No local source media found. Starting download."
+msgstr ""
+
+#: main.c:340
+msgid "Downloading installation image ..."
+msgstr ""
+
+#: main.c:342
+msgid "Download error"
+msgstr ""
+
+#: main.c:376
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:377
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:399
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:418
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:419
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:430
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:443
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:445
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:446 main.c:456
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:453
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:455
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:466
+msgid "You disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:480
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:494
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:506
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:507
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:508
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:509
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:523
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:523
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:534
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:538
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:550
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:554
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:561
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:565
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:571
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:582
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:583
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:599
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:600
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:605
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:612
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:634
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:666
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:671
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:671
+msgid "Reboot"
+msgstr ""
+
+#: main.c:682
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
similarity index 94%
rename from src/install+setup/install/unattended.c
rename to src/installer/unattended.c
index 77e1eabbdc94f95d564173d14fa2504034992fd1..dd5388bde5194fc556da426814d5e1275b5b352f 100644 (file)
@@ -20,9 +20,9 @@
  */
 
 #include "install.h"
-extern FILE *flog;
 
-int unattended_setup(struct keyvalue *unattendedkv) {
+int unattended_setup(struct keyvalue *unattendedkv, const char* output) {
+    FILE* flog = fopen(output, "w+");
 
     struct keyvalue *mainsettings = initkeyvalues();
     struct keyvalue *ethernetkv = initkeyvalues();
@@ -80,7 +80,7 @@ int unattended_setup(struct keyvalue *unattendedkv) {
     replacekeyvalue(ethernetkv, "GREEN_BROADCAST", green_broadcast);
     replacekeyvalue(ethernetkv, "CONFIG_TYPE", "0");
     replacekeyvalue(ethernetkv, "GREEN_DEV", "eth0");
-    write_ethernet_configs(ethernetkv);
+    writekeyvalues(ethernetkv, "/harddisk" CONFIG_ROOT "/ethernet/settings");
     freekeyvalues(ethernetkv);
 
     /* timezone */
@@ -132,7 +132,7 @@ int unattended_setup(struct keyvalue *unattendedkv) {
     fprintf(flog, "unattended: setting root password\n");
     snprintf(commandstring, STRING_SIZE,
            "/usr/sbin/chroot /harddisk /bin/sh -c \"echo 'root:%s' | /usr/sbin/chpasswd\"", root_password);
-    if (mysystem(commandstring)) {
+    if (mysystem(NULL, commandstring)) {
        errorbox("unattended: ERROR setting root password");
        return 0;
     }
@@ -141,7 +141,7 @@ int unattended_setup(struct keyvalue *unattendedkv) {
     fprintf(flog, "unattended: setting admin password\n");
     snprintf(commandstring, STRING_SIZE,
            "/usr/sbin/chroot /harddisk /usr/sbin/htpasswd -c -m -b " CONFIG_ROOT "/auth/users admin '%s'", admin_password);
-    if (mysystem(commandstring)) {
+    if (mysystem(NULL, commandstring)) {
        errorbox("unattended: ERROR setting admin password");
        return 0;
     }
@@ -151,11 +151,13 @@ int unattended_setup(struct keyvalue *unattendedkv) {
                fprintf(flog, "unattended: Restoring Backup\n");
            snprintf(commandstring, STRING_SIZE,
                    "/usr/sbin/chroot /harddisk /bin/tar -xvzp -f /var/ipfire/backup/%s -C /", restore_file);
-           if (mysystem(commandstring)) {
+           if (mysystem(NULL, commandstring)) {
                errorbox("unattended: ERROR restoring backup");
            }
        }
 
     fprintf(flog, "unattended: Setup ended\n");
+    fclose(flog);
+
     return 1;
 }
diff --git a/src/libsmooth/Makefile.am b/src/libsmooth/Makefile.am
new file mode 100644 (file)
index 0000000..0a7f881
--- /dev/null
@@ -0,0 +1,81 @@
+#  This file is part of the libsmooth library.
+#
+#  libsmooth 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.
+
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+AM_MAKEFLAGS = --no-print-directory
+AUTOMAKE_OPTIONS = color-tests parallel-tests
+
+SUBDIRS = .
+
+# remove targets if the command fails
+.DELETE_ON_ERROR:
+
+# keep intermediate files
+.SECONDARY:
+
+LIBSMOOTH_CURRENT=1
+LIBSMOOTH_REVISION=0
+LIBSMOOTH_AGE=0
+
+pkgconfiglibdir=$(libdir)/pkgconfig
+CLEANFILES =
+EXTRA_DIST =
+
+AM_CPPFLAGS = \
+       -include $(top_builddir)/config.h \
+       -I $(top_srcdir)/include \
+       $(OUR_CPPFLAGS)
+
+AM_CFLAGS = $(OUR_CFLAGS)
+AM_CXXFLAGS = $(OUR_CXXFLAGS)
+AM_LDFLAGS = $(OUR_LDFLAGS)
+
+lib_LTLIBRARIES =
+
+include_HEADERS =
+
+#- libsmooth -------------------------------------------------------------------
+
+lib_LTLIBRARIES += \
+       libsmooth.la
+
+libsmooth_la_SOURCES = \
+       main.c \
+       varval.c
+
+libsmooth_la_LDFLAGS = \
+       $(AM_LDFLAGS) \
+       -version-info $(LIBSMOOTH_CURRENT):$(LIBSMOOTH_REVISION):$(LIBSMOOTH_AGE)
+
+include_HEADERS += \
+       libsmooth.h
+
+pkgconfiglib_DATA = \
+       libsmooth.pc
+
+CLEANFILES += \
+       libsmooth.pc
+
+EXTRA_DIST += \
+       libsmooth.pc.in
+
+#-------------------------------------------------------------------------------
+
+substitutions = \
+       '|PACKAGE_NAME=$(PACKAGE_NAME)|' \
+       '|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \
+       '|prefix=$(prefix)|' \
+       '|exec_prefix=$(exec_prefix)|' \
+       '|libdir=$(libdir)|' \
+       '|includedir=$(includedir)|'
+
+SED_PROCESS = \
+       $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+       $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(substitutions)))) < $< > $@
+
+%.pc: %.pc.in Makefile
+       $(SED_PROCESS)
diff --git a/src/libsmooth/autogen.sh b/src/libsmooth/autogen.sh
new file mode 100755 (executable)
index 0000000..3065488
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+autoreconf --force --install -I m4
diff --git a/src/libsmooth/configure.ac b/src/libsmooth/configure.ac
new file mode 100644 (file)
index 0000000..2247588
--- /dev/null
@@ -0,0 +1,58 @@
+#  This file is part of libsmooth.
+#
+#  libsmooth 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.
+
+AC_PREREQ([2.64])
+
+AC_INIT([libsmooth],
+       [001],
+       [],
+       [libsmooth],
+       [http://git.ipfire.org/?p=ipfire-2.x.git;a=summary])
+
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR([build-aux])
+
+AM_INIT_AUTOMAKE([
+       foreign
+       1.11
+       -Wall
+       -Wno-portability
+       silent-rules
+       tar-pax
+       no-dist-gzip
+       dist-xz
+       subdir-objects
+])
+AM_SILENT_RULES([yes])
+
+LT_PREREQ(2.2)
+LT_INIT([disable-static])
+
+AC_PROG_SED
+
+AC_PROG_CC
+AC_PROG_CC_C99
+AC_PROG_CC_C_O
+
+AC_PATH_PROG([M4], [m4])
+
+# This makes sure pkg.m4 is available.
+m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
+
+AC_CONFIG_FILES([
+       Makefile
+])
+
+AC_OUTPUT
+AC_MSG_RESULT([
+       $PACKAGE_NAME $VERSION
+
+       CFLAGS:                 ${OUR_CFLAGS} ${CFLAGS}
+       CPPFLAGS:               ${OUR_CPPFLAGS} ${CPPFLAGS}
+       LDFLAGS:                ${OUR_LDFLAGS} ${LDFLAGS}
+])
diff --git a/src/libsmooth/libsmooth.h b/src/libsmooth/libsmooth.h
new file mode 100644 (file)
index 0000000..d731e54
--- /dev/null
@@ -0,0 +1,68 @@
+/* SmoothWall libsmooth.
+ *
+ * This program is distributed under the terms of the GNU General Public
+ * Licence.  See the file COPYING for details.
+ *
+ * (c) Lawrence Manning, 2001
+ * Contains prototypes for library functions.
+ * 
+ */
+
+#ifndef ___LIBSMOOTH_H
+#define ___LIBSMOOTH_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <wchar.h>
+#include <locale.h>
+#include <unistd.h>
+#include <sys/file.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <newt.h>
+#include <dirent.h>
+#include <sys/mount.h>
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+#include <linux/cdrom.h>
+#include <sys/ioctl.h>
+
+#define STRING_SIZE 1024
+
+struct keyvalue {
+       char key[STRING_SIZE];
+       char value[STRING_SIZE];
+       struct keyvalue *next;
+};
+
+/* libsmooth.c */
+void stripnl(char *s);
+int mysystem(const char* output, const char *command);
+void errorbox(char *message);
+int statuswindowscroll(int width, int height, const char *title, const char *text, ...);
+int disclaimerbox(char *message);
+void statuswindow(int width, int height, const char *title, const char *text, ...);
+int runcommandwithprogress(int width, int height, const char *title, const char *command,
+       int lines, char *text, ...);
+int runcommandwithstatus(const char *command, const char* title, const char *message, const char* output);
+int runhiddencommandwithstatus(const char *command, const char* title, const char *message, const char* output);
+int checkformodule(const char *module); 
+int replace(char filename1[], char *from, char *to);
+char* get_version(void);
+
+/* varval.c */
+struct keyvalue *initkeyvalues(void);
+void freekeyvalues(struct keyvalue *head);
+int readkeyvalues(struct keyvalue *head, char *filename);
+int writekeyvalues(struct keyvalue *head, char *filename);
+int findkey(struct keyvalue *head, char *key, char *value);
+void appendkeyvalue(struct keyvalue *head, char *key, char *value);
+void replacekeyvalue(struct keyvalue *head, char *key, char *value);
+
+#endif
diff --git a/src/libsmooth/libsmooth.pc.in b/src/libsmooth/libsmooth.pc.in
new file mode 100644 (file)
index 0000000..add59a1
--- /dev/null
@@ -0,0 +1,18 @@
+#  This file is part of the libsmooth library.
+#
+#  libsmooth 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.
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libsmooth
+Description: libsmooth library
+URL: @PACKAGE_URL@
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lsmooth
+Cflags: -I${includedir}
diff --git a/src/libsmooth/m4/attributes.m4 b/src/libsmooth/m4/attributes.m4
new file mode 100644 (file)
index 0000000..7e080da
--- /dev/null
@@ -0,0 +1,288 @@
+dnl Macros to check the presence of generic (non-typed) symbols.
+dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
+dnl Copyright (c) 2006-2008 xine project
+dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+dnl 02110-1301, USA.
+dnl
+dnl As a special exception, the copyright owners of the
+dnl macro gives unlimited permission to copy, distribute and modify the
+dnl configure scripts that are the output of Autoconf when processing the
+dnl Macro. You need not follow the terms of the GNU General Public
+dnl License when using or distributing such scripts, even though portions
+dnl of the text of the Macro appear in them. The GNU General Public
+dnl License (GPL) does govern all other use of the material that
+dnl constitutes the Autoconf Macro.
+dnl
+dnl This special exception to the GPL applies to versions of the
+dnl Autoconf Macro released by this project. When you make and
+dnl distribute a modified version of the Autoconf Macro, you may extend
+dnl this special exception to the GPL to apply to your modified version as
+dnl well.
+
+dnl Check if FLAG in ENV-VAR is supported by compiler and append it
+dnl to WHERE-TO-APPEND variable
+dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG])
+
+AC_DEFUN([CC_CHECK_FLAG_APPEND], [
+  AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
+                 AS_TR_SH([cc_cv_$2_$3]),
+          [eval "AS_TR_SH([cc_save_$2])='${$2}'"
+           eval "AS_TR_SH([$2])='-Werror $3'"
+           AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a = 0; int main(void) { return a; } ])],
+                                    [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
+                                    [eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
+           eval "AS_TR_SH([$2])='$cc_save_$2'"])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes],
+        [eval "$1='${$1} $3'"])
+])
+
+dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2])
+AC_DEFUN([CC_CHECK_FLAGS_APPEND], [
+  for flag in $3; do
+    CC_CHECK_FLAG_APPEND($1, $2, $flag)
+  done
+])
+
+dnl Check if the flag is supported by linker (cacheable)
+dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+
+AC_DEFUN([CC_CHECK_LDFLAGS], [
+  AC_CACHE_CHECK([if $CC supports $1 flag],
+    AS_TR_SH([cc_cv_ldflags_$1]),
+    [ac_save_LDFLAGS="$LDFLAGS"
+     LDFLAGS="$LDFLAGS $1"
+     AC_LINK_IFELSE([int main() { return 1; }],
+       [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
+       [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
+     LDFLAGS="$ac_save_LDFLAGS"
+    ])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
+    [$2], [$3])
+])
+
+dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
+dnl the current linker to avoid undefined references in a shared object.
+AC_DEFUN([CC_NOUNDEFINED], [
+  dnl We check $host for which systems to enable this for.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  case $host in
+     dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
+     dnl are requested, as different implementations are present; to avoid problems
+     dnl use -Wl,-z,defs only for those platform not behaving this way.
+     *-freebsd* | *-openbsd*) ;;
+     *)
+        dnl First of all check for the --no-undefined variant of GNU ld. This allows
+        dnl for a much more readable commandline, so that people can understand what
+        dnl it does without going to look for what the heck -z defs does.
+        for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
+           CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
+           break
+        done
+     ;;
+  esac
+
+  AC_SUBST([LDFLAGS_NOUNDEFINED])
+])
+
+dnl Check for a -Werror flag or equivalent. -Werror is the GCC
+dnl and ICC flag that tells the compiler to treat all the warnings
+dnl as fatal. We usually need this option to make sure that some
+dnl constructs (like attributes) are not simply ignored.
+dnl
+dnl Other compilers don't support -Werror per se, but they support
+dnl an equivalent flag:
+dnl  - Sun Studio compiler supports -errwarn=%all
+AC_DEFUN([CC_CHECK_WERROR], [
+  AC_CACHE_CHECK(
+    [for $CC way to treat warnings as errors],
+    [cc_cv_werror],
+    [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
+      [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
+    ])
+])
+
+AC_DEFUN([CC_CHECK_ATTRIBUTE], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
+    AS_TR_SH([cc_cv_attribute_$1]),
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])],
+       [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
+       [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
+     CFLAGS="$ac_save_CFLAGS"
+    ])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
+    [AC_DEFINE(
+       AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
+         [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
+         )
+     $4],
+    [$5])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
+  CC_CHECK_ATTRIBUTE(
+    [constructor],,
+    [void __attribute__((constructor)) ctor() { int a; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
+  CC_CHECK_ATTRIBUTE(
+    [format], [format(printf, n, n)],
+    [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
+  CC_CHECK_ATTRIBUTE(
+    [format_arg], [format_arg(printf)],
+    [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
+  CC_CHECK_ATTRIBUTE(
+    [visibility_$1], [visibility("$1")],
+    [void __attribute__((visibility("$1"))) $1_function() { }],
+    [$2], [$3])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
+  CC_CHECK_ATTRIBUTE(
+    [nonnull], [nonnull()],
+    [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
+  CC_CHECK_ATTRIBUTE(
+    [unused], ,
+    [void some_function(void *foo, __attribute__((unused)) void *bar);],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
+  CC_CHECK_ATTRIBUTE(
+    [sentinel], ,
+    [void some_function(void *foo, ...) __attribute__((sentinel));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
+  CC_CHECK_ATTRIBUTE(
+    [deprecated], ,
+    [void some_function(void *foo, ...) __attribute__((deprecated));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
+  CC_CHECK_ATTRIBUTE(
+    [alias], [weak, alias],
+    [void other_function(void *foo) { }
+     void some_function(void *foo) __attribute__((weak, alias("other_function")));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
+  CC_CHECK_ATTRIBUTE(
+    [malloc], ,
+    [void * __attribute__((malloc)) my_alloc(int n);],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_PACKED], [
+  CC_CHECK_ATTRIBUTE(
+    [packed], ,
+    [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_CONST], [
+  CC_CHECK_ATTRIBUTE(
+    [const], ,
+    [int __attribute__((const)) twopow(int n) { return 1 << n; } ],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_FLAG_VISIBILITY], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
+    [cc_cv_flag_visibility],
+    [cc_flag_visibility_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
+     cc_cv_flag_visibility='yes',
+     cc_cv_flag_visibility='no')
+     CFLAGS="$cc_flag_visibility_save_CFLAGS"])
+
+  AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
+    [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
+       [Define this if the compiler supports the -fvisibility flag])
+     $1],
+    [$2])
+])
+
+AC_DEFUN([CC_FUNC_EXPECT], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if compiler has __builtin_expect function],
+    [cc_cv_func_expect],
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+       [int some_function() {
+        int a = 3;
+        return (int)__builtin_expect(a, 3);
+     }])],
+       [cc_cv_func_expect=yes],
+       [cc_cv_func_expect=no])
+     CFLAGS="$ac_save_CFLAGS"
+    ])
+
+  AS_IF([test "x$cc_cv_func_expect" = "xyes"],
+    [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
+     [Define this if the compiler supports __builtin_expect() function])
+     $1],
+    [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
+    [cc_cv_attribute_aligned],
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     for cc_attribute_align_try in 64 32 16 8 4 2; do
+        AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+          int main() {
+            static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
+            return c;
+          }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
+     done
+     CFLAGS="$ac_save_CFLAGS"
+  ])
+
+  if test "x$cc_cv_attribute_aligned" != "x"; then
+     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
+       [Define the highest alignment supported])
+  fi
+])
similarity index 58%
rename from src/install+setup/libsmooth/main.c
rename to src/libsmooth/main.c
index aef3e93225159b6d99e37b90e6a2515f8a871134..1d2a5002e5e3090f0d2f5cb08431dd7b8f7beb19 100644 (file)
  *
  * (c) Lawrence Manning, 2001
  * Contains library functions.
- * 
- * $Id: main.c,v 1.6.2.9 2005/12/09 22:31:41 franck78 Exp $
- * 
  */
  
 #include "libsmooth.h"
 
-extern FILE *flog;
-extern char *mylog;
-
-extern char **ctr;
-  
-/* reboot().  reboots. */
-void reboot(void)
-{
-       mysystem("/etc/halt");
-}
+#include <libintl.h>
+#define _(x) dgettext("libsmooth", x)
 
 /* stripnl().  Replaces \n with \0 */
-void stripnl(char *s)
-{
+void stripnl(char *s) {
        char *t = strchr(s, '\n');
-       if (t) *t = '\0';
+       if (t)
+               *t = '\0';
 }
 
 /* Little wrapper. */
-int mysystem(char *command)
-{
+int mysystem(const char* output, const char *command) {
        char mycommand[STRING_SIZE];
-       
-       snprintf(mycommand, STRING_SIZE, "%s >>%s 2>>%s", command, mylog, mylog);
-       fprintf(flog, "Running command: %s\n", command);
-       return system(mycommand);
-}
-
-void errorbox(char *message)
-{
-       newtWinMessage(ctr[TR_ERROR], ctr[TR_OK], message);
-}
 
-int scrollmsgbox(int width, int height, char *title, char *text, ...)
-{
-       int rc = 0;
-       newtComponent t, f, b, c;
-       char *buf = NULL;
-       char checkbox;
-       int size = 0;
-       int i = 0;
-       va_list args;
+       if (output == NULL)
+               output = "/dev/null";
 
-       va_start(args, text);
+       snprintf(mycommand, sizeof(mycommand), "%s >>%s 2>&1", command, output);
 
-       do {
-               size += 40000;
-               if (buf) free(buf);
-               buf = malloc(size);
-               i = vsnprintf(buf, size, text, args);
-       } while (i == size);
-
-       va_end(args);
-
-       newtCenteredWindow(width, height, title);
-
-       b = newtCompactButton(width - 15 ,height - 2, ctr[TR_OK]);
-       c = newtCheckbox(3, height - 2, ctr[TR_LICENSE_ACCEPT], ' ', " *", &checkbox);
-
-       t = newtTextbox(1, 1, width - 2, height - 4, NEWT_TEXTBOX_WRAP+NEWT_TEXTBOX_SCROLL);
-       newtTextboxSetText(t, buf);
-
-       f = newtForm(NULL, NULL, 0);
-       free(buf);
-
-       newtFormAddComponent(f, c);
-       newtFormAddComponent(f, b);
-       newtFormAddComponent(f, t);
+       FILE* f = fopen(output, "w+");
+       fprintf(f, "Running command: %s\n", command);
+       fclose(f);
 
-       newtRunForm(f);
-       if (checkbox=='*') rc=1;
-       newtFormDestroy(f);
-       return rc;
+       return system(mycommand);
 }
 
-int disclaimerbox(char *message)
-{
-       int rc;
-       char title[STRING_SIZE];
-       
-       sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);
-       rc = scrollmsgbox(75, 20, title, message);
-       newtPopWindow();
-       
-       return rc;
+void errorbox(char *message) {
+       newtWinMessage(_("Error"), _("OK"), message);
 }
 
-
-void statuswindow(int width, int height, char *title, char *text, ...)
-{
+void statuswindow(int width, int height, const char *title, const char *text, ...) {
        newtComponent t, f;
        char *buf = NULL;
        int size = 0;
@@ -134,39 +72,27 @@ void statuswindow(int width, int height, char *title, char *text, ...)
        newtFormDestroy(f);
 }
 
-int runcommandwithstatus(char *command, char *message)
-{
-       int rc;
-       char title[STRING_SIZE];
-       
-       sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);
+int runcommandwithstatus(const char *command, const char* title, const char *message, const char* output) {
        statuswindow(60, 4, title, message);
-       rc = mysystem(command);
+
+       int rc = mysystem(output, command);
        newtPopWindow();
-       
+
        return rc;
 }
 
-int runhiddencommandwithstatus(char *command, char *message)
-{
-       int rc;
-       char title[STRING_SIZE];
-       char mycommand[STRING_SIZE];
-       
-       sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);
+int runhiddencommandwithstatus(const char *command, const char* title, const char *message, const char* output) {
        statuswindow(60, 4, title, message);
-       snprintf(mycommand, STRING_SIZE, "%s >>%s 2>>%s", command, mylog, mylog);
-       fprintf(flog, "Running command: ***** HIDDEN *****\n");
-       rc = system(mycommand);
+
+       int rc = mysystem(output, command);
        newtPopWindow();
-       
+
        return rc;
 }
 
 /* This one borrowed from redhat installer. */
-int runcommandwithprogress(int width, int height, char *title, char *command,
-       int lines, char *text, ...)
-{
+int runcommandwithprogress(int width, int height, const char *title, const char *command,
+       int lines, char *text, ...) {
        newtComponent t, f, s;
        char *buf = NULL;
        int size = 0;
@@ -206,10 +132,7 @@ int runcommandwithprogress(int width, int height, char *title, char *command,
 
        newtDrawForm(f);
        newtRefresh();
-       
-       snprintf(mycommand, STRING_SIZE, "%s 2>>%s", command, mylog);
-       fprintf(flog, "Running command: %s\n", command);
-       
+
        if (!(p = popen(command, "r")))
        {
                rc = 1;
@@ -217,13 +140,11 @@ int runcommandwithprogress(int width, int height, char *title, char *command,
        }
        setvbuf(p, NULL, _IOLBF, 255);
        
-       while (fgets(buffer, STRING_SIZE, p))
-       {
+       while (fgets(buffer, STRING_SIZE, p)) {
                newtScaleSet(s, ++progress);
                newtRefresh();  
-               fprintf(flog, "%s", buffer);
        }
-               
+
        rc = pclose(p);
        
 EXIT:
@@ -233,15 +154,14 @@ EXIT:
        return rc;
 }
 
-int checkformodule(char *module)
-{
+int checkformodule(const char *module) {
        FILE *file;
        char buffer[STRING_SIZE];
        int result = 0;
-       
+
        if (!(file = fopen("/proc/modules", "r")))
        {
-               fprintf(flog, "Unable to open /proc/modules in checkformodule()\n");
+               fprintf(stderr, "Unable to open /proc/modules in checkformodule()\n");
                return 0;
        }
        
@@ -294,8 +214,7 @@ int _replace_string(char string[], char *from, char *to)
        return 0;
 }
 
-int replace(char filename1[], char *from, char *to)
-{
+int replace(char filename1[], char *from, char *to) {
        FILE *file1, *file2;
        char filename2[1000];
        char temp[1000];
@@ -312,7 +231,6 @@ int replace(char filename1[], char *from, char *to)
 
        /* Start reading in lines */
        while (fgets (temp, 1000, file1) != NULL) {
-
                if (strlen(to) > 0) {
                        /* Replace string */
                        ret = _replace_string (temp, from, to);
@@ -336,20 +254,6 @@ int replace(char filename1[], char *from, char *to)
        return (ret);
 }
 
-/* Include enabled languages */
-#ifdef  LANG_EN_ONLY
-        #include "lang_en.c"
-#else
-       #include "lang_de.c"
-       #include "lang_en.c"
-       #include "lang_es.c"
-       #include "lang_fr.c"
-       #include "lang_pl.c"
-       #include "lang_ru.c"
-       #include "lang_nl.c"
-       #include "lang_tr.c"
-#endif
-
 // returns a pointer to the actual running version number of IPFire.
 // Successive updates increase effective version but not VERSION !
 char g_title[STRING_SIZE] = "";
@@ -359,8 +263,6 @@ char* get_version(void) {
                fgets (g_title, STRING_SIZE, f_title);
                fclose (f_title);
                if (g_title[strlen(g_title) - 1] == '\n') g_title[strlen(g_title) - 1] = '\0';
-       } else {
-               sprintf (g_title, "%s %s - %s", NAME, VERSION, SLOGAN);
        }
        return g_title;
 }
index b4474355ad53797c46608dda2cfd09a2d6aae549..f5802d26ac2c7918d43e4f998e100fb5f8f1a0a9 100644 (file)
 #                                                                             #
 ###############################################################################
 
-CC=gcc 
-CFLAGS=-O2 -Wall
-
-COMPILE=$(CC) $(CFLAGS)
+CC      = gcc
+CFLAGS ?= -O2 -Wall
+LIBS    = -lsmooth -lnewt
 
 PROGS = iowrap
 SUID_PROGS = squidctrl sshctrl ipfirereboot \
@@ -35,128 +34,24 @@ SUID_PROGS = squidctrl sshctrl ipfirereboot \
        getconntracktable wirelessclient dnsmasqctrl torctrl
 SUID_UPDX = updxsetperms
 
-install : all
+OBJS = $(patsubst %,%.o,$(PROGS) $(SUID_PROGS))
+
+install: all
        install -m 755  $(PROGS) /usr/local/bin
        install -m 4750 -g nobody $(SUID_PROGS) /usr/local/bin
 
-all : $(PROGS) $(SUID_PROGS)
+all: $(PROGS) $(SUID_PROGS)
 
-clean : 
+clean:
        -rm -f $(PROGS) $(SUID_PROGS) *.o core
 
 ######
 
-% : %.c
-       $(COMPILE) $< setuid.o -o $@
+%.o: %.c
+       $(CC) $(CFLAGS) -c $< -o $@
 
 setuid.o: setuid.c setuid.h
-       $(COMPILE) $< -c -o $@
-
-$(SUID_PROGS): setuid.o
-
-$(PROGS): setuid.o
-
-logwatch: logwatch.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ logwatch.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-openvpnctrl: openvpnctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ openvpnctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-qosctrl: qosctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ qosctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-redctrl: redctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ redctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-extrahdctrl: extrahdctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ extrahdctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-       
-upnpctrl: upnpctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ upnpctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-sambactrl: sambactrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ sambactrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-tripwirectrl: tripwirectrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ tripwirectrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-       
-smartctrl: smartctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ smartctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-clamavctrl: clamavctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ clamavctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-firewallctrl: firewallctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ firewallctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-timectrl: timectrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ timectrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-launch-ether-wake: launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-rebuildhosts: rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-applejuicectrl: applejuicectrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ applejuicectrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-dhcpctrl: dhcpctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ dhcpctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-sshctrl: sshctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ sshctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-squidctrl: squidctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ squidctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-snortctrl: snortctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ snortctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-wirelessctrl: wirelessctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ wirelessctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-ipsecctrl: ipsecctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ ipsecctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-getipstat: getipstat.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ getipstat.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-pakfire: pakfire.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ pakfire.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-mpfirectrl: mpfirectrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ mpfirectrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-backupctrl: backupctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ backupctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-addonctrl: addonctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ addonctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-syslogdctrl: syslogdctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ syslogdctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-wlanapctrl: wlanapctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ wlanapctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-setaliases: setaliases.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ setaliases.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-fireinfoctrl: fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-rebuildroutes: rebuildroutes.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ rebuildroutes.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-getconntracktable: getconntracktable.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ getconntracktable.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-wirelessclient: wirelessclient.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ wirelessclient.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-
-dnsmasqctrl: dnsmasqctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ dnsmasqctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+       $(CC) $(CFLAGS) -c $< -o $@
 
-torctrl: torctrl.c setuid.o ../install+setup/libsmooth/varval.o
-       $(COMPILE) -I../install+setup/libsmooth/ torctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+$(PROGS) $(SUID_PROGS): setuid.o | $(OBJS)
+       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $@.o $< $(LIBS)
index 4b371326a3818747a70733dc6102d6b9ed3a12e3..5bd19ce9adf13373aa8f045defe6b1f5ddc28359 100644 (file)
@@ -1,9 +1,12 @@
-diff -up bash-3.2/config-top.h.ssh_source_bash bash-3.2/config-top.h
---- bash-3.2/config-top.h.ssh_source_bash      2008-10-23 15:08:04.000000000 +0200
-+++ bash-3.2/config-top.h      2008-10-23 15:08:33.000000000 +0200
-@@ -86,4 +86,4 @@
- /* Define this if you want bash to try to check whether it's being run by
-    sshd and source the .bashrc if so (like the rshd behavior). */
+diff -up bash-4.0/config-top.h.ssh_source_bash bash-4.0/config-top.h
+--- bash-4.0/config-top.h.ssh_source_bash      2009-01-21 15:20:06.000000000 +0100
++++ bash-4.0/config-top.h      2009-01-21 15:25:46.000000000 +0100
+@@ -90,7 +90,7 @@
+    sshd and source the .bashrc if so (like the rshd behavior).  This checks
+    for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment,
+    which can be fooled under certain not-uncommon circumstances. */
 -/* #define SSH_SOURCE_BASHRC */
 +#define SSH_SOURCE_BASHRC
+ /* Define if you want the case-capitalizing operators (~[~]) and the
+    `capcase' variable attribute (declare -c). */
index 735a3810f048d128cbb0cb3ef26ab6f24a561464..24ec5cc0ba2809e8ddcca66c1045a1601b6a308f 100644 (file)
@@ -1,25 +1,6 @@
---- bash-3.0/config.h.in.paths 2004-07-21 21:08:31.000000000 +0100
-+++ bash-3.0/config.h.in       2004-07-28 09:16:27.257884999 +0100
-@@ -197,7 +197,7 @@
- /* System paths */
--#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail"
-+#define DEFAULT_MAIL_DIRECTORY "/var/spool/mail"
- /* Characteristics of the system's header files and libraries that affect
-    the compilation environment. */
 --- bash-3.0/config-top.h.paths        2003-08-05 15:36:12.000000000 +0100
 +++ bash-3.0/config-top.h      2004-07-28 09:36:27.117205637 +0100
-@@ -52,14 +52,14 @@
- /* The default value of the PATH variable. */
- #ifndef DEFAULT_PATH_VALUE
- #define DEFAULT_PATH_VALUE \
--  "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
-+  "/usr/local/bin:/bin:/usr/bin"
- #endif
- /* The value for PATH when invoking `command -p'.  This is only used when
+@@ -66,7 +66,7 @@
     the Posix.2 confstr () function, or CS_PATH define are not present. */
  #ifndef STANDARD_UTILS_PATH
  #define STANDARD_UTILS_PATH \
diff --git a/src/patches/bash/bash32-001 b/src/patches/bash/bash32-001
deleted file mode 100644 (file)
index b7d1f1e..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-001
-
-Bug-Reported-by:       Greg Schafer <gschafer@zip.com.au>
-Bug-Reference-ID:      <20061012084940.GA15768@tigers.local>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
-
-Bug-Description:
-
-When using historical ``-style command substitution, bash incorrectly attempts
-to interpret shell comments while scanning for the closing backquote.
-
-Patch:
-
-*** ../bash-3.2/parse.y        Tue Sep 19 16:37:21 2006
---- parse.y    Thu Oct 12 10:30:57 2006
-***************
-*** 2736,2740 ****
-    count = 1;
-    pass_next_character = backq_backslash = was_dollar = in_comment = 0;
-!   check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
-  
-    /* RFLAGS is the set of flags we want to pass to recursive calls. */
---- 2736,2740 ----
-    count = 1;
-    pass_next_character = backq_backslash = was_dollar = in_comment = 0;
-!   check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
-  
-    /* RFLAGS is the set of flags we want to pass to recursive calls. */
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 0
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 1
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-002 b/src/patches/bash/bash32-002
deleted file mode 100644 (file)
index b934df9..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-002
-
-Bug-Reported-by:       Jim Gifford <jim@jg555.com>
-Bug-Reference-ID:      <12j2pc3aq35mb04@corp.supernews.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html
-
-Bug-Description:
-
-An incorrect encoding specification in the Content-Type header causes msgfmt
-to fail, which causes `make install' to fail.
-
-Patch:
-
-*** ../bash-3.2/po/ru.po        Tue Jan 10 17:51:03 2006
---- po/ru.po    Mon Oct 16 15:13:23 2006
-***************
-*** 13,17 ****
-  "Language-Team: Russian <ru@li.org>\n"
-  "MIME-Version: 1.0\n"
-! "Content-Type: text/plain; charset=UTF-8\n"
-  "Content-Transfer-Encoding: 8bit\n"
-  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
---- 13,17 ----
-  "Language-Team: Russian <ru@li.org>\n"
-  "MIME-Version: 1.0\n"
-! "Content-Type: text/plain; charset=KOI8-R\n"
-  "Content-Transfer-Encoding: 8bit\n"
-  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 1
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 2
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-003 b/src/patches/bash/bash32-003
deleted file mode 100644 (file)
index 922041b..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-003
-
-Bug-Reported-by:       John Gatewood Ham <zappaman@buraphalinux.org>
-Bug-Reference-ID:      <Pine.LNX.4.64.0610121334140.15558@www.buraphalinux.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
-
-Bug-Description:
-
-When using the conditional command's `=~' operator to match regular
-expressions, the parser did not skip over shell metacharacters in the
-regular expression, leading to syntax errors.
-
-Patch:
-
-*** ../bash-3.2-patched/parse.y        Tue Oct 17 11:45:20 2006
---- parse.y    Sat Oct 14 14:56:16 2006
-***************
-*** 1029,1034 ****
---- 1029,1035 ----
-  #define PST_CMDTOKEN 0x1000          /* command token OK - unused */
-  #define PST_COMPASSIGN       0x2000          /* parsing x=(...) compound assignment */
-  #define PST_ASSIGNOK 0x4000          /* assignment statement ok in this context */
-+ #define PST_REGEXP   0x8000          /* parsing an ERE/BRE as a single word */
-  
-  /* Initial size to allocate for tokens, and the
-     amount to grow them by. */
-***************
-*** 2591,2596 ****
---- 2592,2600 ----
-        return (character);
-      }
-  
-+   if (parser_state & PST_REGEXP)
-+     goto tokword;
-+ 
-    /* Shell meta-characters. */
-    if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
-      {
-***************
-*** 2698,2703 ****
---- 2702,2708 ----
-    if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
-      return (character);
-  
-+ tokword:
-    /* Okay, if we got this far, we have to read a word.  Read one,
-       and then check it against the known ones. */
-    result = read_token_word (character);
-***************
-*** 3202,3209 ****
-        if (tok == WORD && test_binop (yylval.word->word))
-       op = yylval.word;
-  #if defined (COND_REGEXP)
-!       else if (tok == WORD && STREQ (yylval.word->word,"=~"))
-!      op = yylval.word;
-  #endif
-        else if (tok == '<' || tok == '>')
-       op = make_word_from_token (tok);  /* ( */
---- 3207,3217 ----
-        if (tok == WORD && test_binop (yylval.word->word))
-       op = yylval.word;
-  #if defined (COND_REGEXP)
-!       else if (tok == WORD && STREQ (yylval.word->word, "=~"))
-!      {
-!        op = yylval.word;
-!        parser_state |= PST_REGEXP;
-!      }
-  #endif
-        else if (tok == '<' || tok == '>')
-       op = make_word_from_token (tok);  /* ( */
-***************
-*** 3234,3239 ****
---- 3242,3248 ----
-  
-        /* rhs */
-        tok = read_token (READ);
-+       parser_state &= ~PST_REGEXP;
-        if (tok == WORD)
-       {
-         tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
-***************
-*** 3419,3427 ****
-         goto next_character;
-       }
-  
-  #ifdef EXTENDED_GLOB
-        /* Parse a ksh-style extended pattern matching specification. */
-!       if (extended_glob && PATTERN_CHAR (character))
-       {
-         peek_char = shell_getc (1);
-         if MBTEST(peek_char == '(')           /* ) */
---- 3428,3461 ----
-         goto next_character;
-       }
-  
-+ #ifdef COND_REGEXP
-+       /* When parsing a regexp as a single word inside a conditional command,
-+       we need to special-case characters special to both the shell and
-+       regular expressions.  Right now, that is only '(' and '|'. */ /*)*/
-+       if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|'))               /*)*/
-+         {
-+           if (character == '|')
-+             goto got_character;
-+ 
-+        push_delimiter (dstack, character);
-+        ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
-+        pop_delimiter (dstack);
-+        if (ttok == &matched_pair_error)
-+          return -1;          /* Bail immediately. */
-+        RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
-+                                token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
-+        token[token_index++] = character;
-+        strcpy (token + token_index, ttok);
-+        token_index += ttoklen;
-+        FREE (ttok);
-+        dollar_present = all_digit_token = 0;
-+        goto next_character;
-+         }
-+ #endif /* COND_REGEXP */
-+ 
-  #ifdef EXTENDED_GLOB
-        /* Parse a ksh-style extended pattern matching specification. */
-!       if MBTEST(extended_glob && PATTERN_CHAR (character))
-       {
-         peek_char = shell_getc (1);
-         if MBTEST(peek_char == '(')           /* ) */
-
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 2
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 3
-  
-  #endif /* _PATCHLEVEL_H_ */
-
diff --git a/src/patches/bash/bash32-004 b/src/patches/bash/bash32-004
deleted file mode 100644 (file)
index cd2accf..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-004
-
-Bug-Reported-by:       Stuart Shelton <srcshelton@gmail.com>
-Bug-Reference-ID:      <619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com>
-Bug-Reference-URL:     
-
-Bug-Description:
-
-A bug in the parameter pattern substitution implementation treated a pattern
-whose first character was `/' (after expansion) as specifying global
-replacement.
-
-Patch:
-
-*** ../bash-3.2/subst.c        Tue Sep 19 08:35:09 2006
---- subst.c    Thu Oct 26 09:17:50 2006
-***************
-*** 5707,5712 ****
---- 5707,5717 ----
-    vtype &= ~VT_STARSUB;
-  
-    mflags = 0;
-+   if (patsub && *patsub == '/')
-+     {
-+       mflags |= MATCH_GLOBREP;
-+       patsub++;
-+     }
-  
-    /* Malloc this because expand_string_if_necessary or one of the expansion
-       functions in its call chain may free it on a substitution error. */
-***************
-*** 5741,5753 ****
-      }
-  
-    /* ksh93 doesn't allow the match specifier to be a part of the expanded
-!      pattern.  This is an extension. */
-    p = pat;
-!   if (pat && pat[0] == '/')
-!     {
-!       mflags |= MATCH_GLOBREP|MATCH_ANY;
-!       p++;
-!     }
-    else if (pat && pat[0] == '#')
-      {
-        mflags |= MATCH_BEG;
---- 5746,5757 ----
-      }
-  
-    /* ksh93 doesn't allow the match specifier to be a part of the expanded
-!      pattern.  This is an extension.  Make sure we don't anchor the pattern
-!      at the beginning or end of the string if we're doing global replacement,
-!      though. */
-    p = pat;
-!   if (mflags & MATCH_GLOBREP)
-!     mflags |= MATCH_ANY;
-    else if (pat && pat[0] == '#')
-      {
-        mflags |= MATCH_BEG;
-*** ../bash-3.2/tests/new-exp.right    Thu Aug 10 12:00:00 2006
---- tests/new-exp.right        Sun Oct 29 16:03:36 2006
-***************
-*** 430,436 ****
-  Case06---1---A B C::---
-  Case07---3---A:B:C---
-  Case08---3---A:B:C---
-! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution
-  argv[1] = <a>
-  argv[2] = <b>
-  argv[3] = <c>
---- 430,436 ----
-  Case06---1---A B C::---
-  Case07---3---A:B:C---
-  Case08---3---A:B:C---
-! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution
-  argv[1] = <a>
-  argv[2] = <b>
-  argv[3] = <c>
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 3
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 4
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-005 b/src/patches/bash/bash32-005
deleted file mode 100644 (file)
index 903ec58..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-005
-
-Bug-Reported-by:       Stuart Shelton <stuart@openobjects.com>
-Bug-Reference-ID:      <453F7CC8.6030907@openobjects.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html
-
-Bug-Description:
-
-A missing extern declaration for `asprintf' caused `double' arguments to be
-passed as `0', leading to incorrect results.  Additionally, a bug in the
-replacement asprintf/snprintf function caused an infinite loop when passed
-0 arguments to the floating point conversions under some circumstances.
-
-Patch:
-
-*** ../bash-3.2/builtins/printf.def    Mon Sep 18 08:48:42 2006
---- builtins/printf.def        Tue Oct 31 08:19:44 2006
-***************
-*** 49,54 ****
---- 49,60 ----
-  #  define INT_MIN            (-2147483647-1)
-  #endif
-  
-+ #if defined (PREFER_STDARG)
-+ #  include <stdarg.h>
-+ #else
-+ #  include <varargs.h>
-+ #endif
-+ 
-  #include <stdio.h>
-  #include <chartypes.h>
-  
-***************
-*** 151,156 ****
---- 157,166 ----
-  #define SKIP1 "#'-+ 0"
-  #define LENMODS "hjlLtz"
-  
-+ #ifndef HAVE_ASPRINTF
-+ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
-+ #endif
-+ 
-  static void printf_erange __P((char *));
-  static int printstr __P((char *, char *, int, int, int));
-  static int tescape __P((char *, char *, int *));
-
-
-*** ../bash-3.2/lib/sh/snprintf.c      Thu Apr  6 09:48:40 2006
---- lib/sh/snprintf.c  Sat Oct 28 00:00:13 2006
-***************
-*** 471,476 ****
---- 476,483 ----
-         10^x ~= r
-   * log_10(200) = 2;
-   * log_10(250) = 2;
-+  *
-+  * NOTE: do not call this with r == 0 -- an infinite loop results.
-   */
-  static int
-  log_10(r)
-***************
-*** 576,583 ****
-      { 
-        integral_part[0] = '0';
-        integral_part[1] = '\0';
-!       fraction_part[0] = '0';
-!       fraction_part[1] = '\0';
-        if (fract)
-       *fract = fraction_part;
-        return integral_part;
---- 583,593 ----
-      { 
-        integral_part[0] = '0';
-        integral_part[1] = '\0';
-!       /* The fractional part has to take the precision into account */
-!       for (ch = 0; ch < precision-1; ch++)
-!      fraction_part[ch] = '0';
-!       fraction_part[ch] = '0';
-!       fraction_part[ch+1] = '\0';
-        if (fract)
-       *fract = fraction_part;
-        return integral_part;
-***************
-*** 805,810 ****
---- 815,821 ----
-        PUT_CHAR(*tmp, p);
-        tmp++;
-      }
-+ 
-    PAD_LEFT(p);
-  }
-  
-***************
-*** 972,982 ****
-    if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
-      tmp = t;
-  
-    /* calculate the padding. 1 for the dot */
-    p->width = p->width -
-           ((d > 0. && p->justify == RIGHT) ? 1:0) -
-           ((p->flags & PF_SPACE) ? 1:0) -
-!          strlen(tmp) - p->precision - 1;
-    PAD_RIGHT(p);  
-    PUT_PLUS(d, p, 0.);
-    PUT_SPACE(d, p, 0.);
---- 983,1003 ----
-    if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
-      tmp = t;
-  
-+   if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
-+     {
-+       /* smash the trailing zeros unless altform */
-+       for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
-+         tmp2[i] = '\0'; 
-+       if (tmp2[0] == '\0')
-+      p->precision = 0;
-+     }
-+ 
-    /* calculate the padding. 1 for the dot */
-    p->width = p->width -
-           ((d > 0. && p->justify == RIGHT) ? 1:0) -
-           ((p->flags & PF_SPACE) ? 1:0) -
-!          strlen(tmp) - p->precision -
-!          ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0);   /* radix char */
-    PAD_RIGHT(p);  
-    PUT_PLUS(d, p, 0.);
-    PUT_SPACE(d, p, 0.);
-***************
-*** 991,1001 ****
-    if (p->precision != 0 || (p->flags & PF_ALTFORM))
-      PUT_CHAR(decpoint, p);  /* put the '.' */
-  
--   if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
--     /* smash the trailing zeros unless altform */
--     for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
--       tmp2[i] = '\0'; 
-- 
-    for (; *tmp2; tmp2++)
-      PUT_CHAR(*tmp2, p); /* the fraction */
-    
---- 1012,1017 ----
-***************
-*** 1011,1024 ****
-    char *tmp, *tmp2;
-    int j, i;
-  
-!   if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
-      return;  /* already printed nan or inf */
-  
-    GETLOCALEDATA(decpoint, thoussep, grouping);
-    DEF_PREC(p);
-!   j = log_10(d);
-!   d = d / pow_10(j);  /* get the Mantissa */
-!   d = ROUND(d, p);             
-    tmp = dtoa(d, p->precision, &tmp2);
-  
-    /* 1 for unit, 1 for the '.', 1 for 'e|E',
---- 1027,1045 ----
-    char *tmp, *tmp2;
-    int j, i;
-  
-!   if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
-      return;  /* already printed nan or inf */
-  
-    GETLOCALEDATA(decpoint, thoussep, grouping);
-    DEF_PREC(p);
-!   if (d == 0.)
-!     j = 0;
-!   else
-!     {
-!       j = log_10(d);
-!       d = d / pow_10(j);  /* get the Mantissa */
-!       d = ROUND(d, p);                 
-!     }
-    tmp = dtoa(d, p->precision, &tmp2);
-  
-    /* 1 for unit, 1 for the '.', 1 for 'e|E',
-***************
-*** 1076,1081 ****
---- 1097,1103 ----
-         PUT_CHAR(*tmp, p);
-         tmp++;
-       }
-+ 
-     PAD_LEFT(p);
-  }
-  #endif
-***************
-*** 1358,1364 ****
-               STAR_ARGS(data);
-               DEF_PREC(data);
-               d = GETDOUBLE(data);
-!              i = log_10(d);
-               /*
-                * for '%g|%G' ANSI: use f if exponent
-                * is in the range or [-4,p] exclusively
---- 1380,1386 ----
-               STAR_ARGS(data);
-               DEF_PREC(data);
-               d = GETDOUBLE(data);
-!              i = (d != 0.) ? log_10(d) : -1;
-               /*
-                * for '%g|%G' ANSI: use f if exponent
-                * is in the range or [-4,p] exclusively
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 4
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 5
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-006 b/src/patches/bash/bash32-006
deleted file mode 100644 (file)
index 589db9e..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-006
-
-Bug-Reported-by:       ebb9@byu.net
-Bug-Reference-ID:      <45540862.9030900@byu.net>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
-                       http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
-
-Bug-Description:
-
-In some cases, code that is intended to be used in the presence of multibyte
-characters is called when no such characters are present, leading to incorrect
-display position calculations and incorrect redisplay.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
---- lib/readline/display.c     Mon Nov 13 17:55:57 2006
-***************
-*** 2381,2384 ****
---- 2409,2414 ----
-    if (end <= start)
-      return 0;
-+   if (MB_CUR_MAX == 1 || rl_byte_oriented)
-+     return (end - start);
-  
-    memset (&ps, 0, sizeof (mbstate_t));
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 5
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 6
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-007 b/src/patches/bash/bash32-007
deleted file mode 100644 (file)
index 9b86f4a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-007
-
-Bug-Reported-by:       jidanni@jidanni.org
-Bug-Reference-ID:      <E1Gkg12-00017D-Fm@jidanni.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html
-
-Bug-Description:
-
-When removing the current or previous job from the jobs list, bash incorrectly
-resets the current job under some circumstances.
-
-Patch:
-
-*** ../bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006
---- jobs.c     Fri Nov 24 14:50:01 2006
-***************
-*** 985,990 ****
-    if (temp == 0)
-      return;
--   if (job_index == js.j_current || job_index == js.j_previous)
--     reset_current ();
-  
-    if ((dflags & DEL_NOBGPID) == 0)
---- 985,988 ----
-***************
-*** 1029,1032 ****
---- 1027,1033 ----
-    else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
-      reset_job_indices ();
-+ 
-+   if (job_index == js.j_current || job_index == js.j_previous)
-+     reset_current ();
-  }
-
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 6
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 7
-  
-  #endif /* _PATCHLEVEL_H_ */
-
-  
diff --git a/src/patches/bash/bash32-008 b/src/patches/bash/bash32-008
deleted file mode 100644 (file)
index 7ec07ff..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-008
-
-Bug-Reported-by:       Linda Walsh <bash@tlinx.org>
-Bug-Reference-ID:      <456041FD.8000605@tlinx.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html
-
-Bug-Description:
-
-When checking pathnames from the command hash table (e.g., when the `checkhash'
-shell option is enabled), a bug causes bash to delete and re-lookup each
-command.
-
-Patch:
-
-*** ../bash-3.2-patched/findcmd.c      Wed Aug 17 16:49:54 2005
---- findcmd.c  Fri Nov 24 10:48:37 2006
-***************
-*** 309,313 ****
-      {
-        st = file_status (hashed_file);
-!       if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0)
-       {
-         phash_remove (pathname);
---- 309,313 ----
-      {
-        st = file_status (hashed_file);
-!       if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE))
-       {
-         phash_remove (pathname);
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 7
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 8
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-009 b/src/patches/bash/bash32-009
deleted file mode 100644 (file)
index 9cfd16e..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-009
-
-Bug-Reported-by:       James.M.Botte@lowes.com
-Bug-Reference-ID:      <BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853@msexchdb01.lowes.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html
-
-Bug-Description:
-
-When using its built-in replacement for snprintf/asprintf, bash does not
-treat the %x, %X, and %o format specifiers as unsigned numbers.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/sh/snprintf.c      Mon Nov 13 08:58:52 2006
---- lib/sh/snprintf.c  Wed Dec  6 11:15:04 2006
-***************
-*** 669,673 ****
-  
-    sd = d;    /* signed for ' ' padding in base 10 */
-!   flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
-    if (*p->pf == 'X')
-      flags |= FL_HEXUPPER;
---- 674,679 ----
-  
-    sd = d;    /* signed for ' ' padding in base 10 */
-!   flags = 0;
-!   flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
-    if (*p->pf == 'X')
-      flags |= FL_HEXUPPER;
-***************
-*** 739,743 ****
-  
-    sd = d;    /* signed for ' ' padding in base 10 */
-!   flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
-    if (*p->pf == 'X')
-      flags |= FL_HEXUPPER;
---- 745,749 ----
-  
-    sd = d;    /* signed for ' ' padding in base 10 */
-!   flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
-    if (*p->pf == 'X')
-      flags |= FL_HEXUPPER;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 8
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 9
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-010 b/src/patches/bash/bash32-010
deleted file mode 100644 (file)
index 88de575..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-010
-
-Bug-Reported-by:       Ryan Waldron <rew@erebor.com>
-Bug-Reference-ID:      <20070119065603.546D011E9C@kansas.erebor.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00059.html
-
-Bug-Description:
-
-The glibc implementation of regcomp/regexec does not allow backslashes to
-escape "ordinary" pattern characters when matching.  Bash used backslashes
-to quote all characters when the pattern argument to the [[ special
-command's =~ operator was quoted.  This caused the match to fail on Linux
-and other systems using GNU libc.
-
-Patch:
-
-*** ../bash-3.2.9/pathexp.h    Sat Feb 19 17:23:18 2005
---- pathexp.h  Wed Jan 31 22:53:16 2007
-***************
-*** 1,5 ****
-  /* pathexp.h -- The shell interface to the globbing library. */
-  
-! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
---- 1,5 ----
-  /* pathexp.h -- The shell interface to the globbing library. */
-  
-! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 33,36 ****
---- 33,37 ----
-  #define QGLOB_CVTNULL        0x01    /* convert QUOTED_NULL strings to '\0' */
-  #define QGLOB_FILENAME       0x02    /* do correct quoting for matching filenames */
-+ #define QGLOB_REGEXP 0x04    /* quote an ERE for regcomp/regexec */
-  
-  #if defined (EXTENDED_GLOB)
-*** ../bash-3.2.9/pathexp.c    Mon May  6 13:43:05 2002
---- pathexp.c  Mon Feb 26 16:59:23 2007
-***************
-*** 1,5 ****
-  /* pathexp.c -- The shell interface to the globbing library. */
-  
-! /* Copyright (C) 1995-2002 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
---- 1,5 ----
-  /* pathexp.c -- The shell interface to the globbing library. */
-  
-! /* Copyright (C) 1995-2007 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 111,114 ****
---- 111,141 ----
-  }
-  
-+ /* Return 1 if C is a character that is `special' in a POSIX ERE and needs to
-+    be quoted to match itself. */
-+ static inline int
-+ ere_char (c)
-+      int c;
-+ {
-+   switch (c)
-+     {
-+     case '.':
-+     case '[':
-+     case '\\':
-+     case '(':
-+     case ')':
-+     case '*':
-+     case '+':
-+     case '?':
-+     case '{':
-+     case '|':
-+     case '^':
-+     case '$':
-+       return 1;
-+     default: 
-+       return 0;
-+     }
-+   return (0);
-+ }
-+ 
-  /* PATHNAME can contain characters prefixed by CTLESC; this indicates
-     that the character is to be quoted.  We quote it here in the style
-***************
-*** 143,146 ****
---- 170,175 ----
-         if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
-           continue;
-+        if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
-+          continue;
-         temp[j++] = '\\';
-         i++;
-*** ../bash-3.2.9/subst.c      Tue Nov  7 16:14:41 2006
---- subst.c    Wed Jan 31 23:09:58 2007
-***************
-*** 5,9 ****
-       beauty, but, hey, you're alright.'' */
-  
-! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
---- 5,9 ----
-       beauty, but, hey, you're alright.'' */
-  
-! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 2647,2655 ****
-  /* This needs better error handling. */
-  /* Expand W for use as an argument to a unary or binary operator in a
-!    [[...]] expression.  If SPECIAL is nonzero, this is the rhs argument
-     to the != or == operator, and should be treated as a pattern.  In
-!    this case, we quote the string specially for the globbing code.  The
-!    caller is responsible for removing the backslashes if the unquoted
-!    words is needed later. */   
-  char *
-  cond_expand_word (w, special)
---- 2647,2656 ----
-  /* This needs better error handling. */
-  /* Expand W for use as an argument to a unary or binary operator in a
-!    [[...]] expression.  If SPECIAL is 1, this is the rhs argument
-     to the != or == operator, and should be treated as a pattern.  In
-!    this case, we quote the string specially for the globbing code.  If
-!    SPECIAL is 2, this is an rhs argument for the =~ operator, and should
-!    be quoted appropriately for regcomp/regexec.  The caller is responsible
-!    for removing the backslashes if the unquoted word is needed later. */   
-  char *
-  cond_expand_word (w, special)
-***************
-*** 2659,2662 ****
---- 2660,2664 ----
-    char *r, *p;
-    WORD_LIST *l;
-+   int qflags;
-  
-    if (w->word == 0 || w->word[0] == '\0')
-***************
-*** 2673,2678 ****
-        else
-       {
-         p = string_list (l);
-!        r = quote_string_for_globbing (p, QGLOB_CVTNULL);
-         free (p);
-       }
---- 2675,2683 ----
-        else
-       {
-+        qflags = QGLOB_CVTNULL;
-+        if (special == 2)
-+          qflags |= QGLOB_REGEXP;
-         p = string_list (l);
-!        r = quote_string_for_globbing (p, qflags);
-         free (p);
-       }
-*** ../bash-3.2.9/execute_cmd.c        Sat Aug 26 00:23:17 2006
---- execute_cmd.c      Wed Jan 31 23:12:06 2007
-***************
-*** 1,5 ****
-  /* execute_cmd.c -- Execute a COMMAND structure. */
-  
-! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
---- 1,5 ----
-  /* execute_cmd.c -- Execute a COMMAND structure. */
-  
-! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 2547,2551 ****
-        if (arg1 == 0)
-       arg1 = nullstr;
-!       arg2 = cond_expand_word (cond->right->op, patmatch||rmatch);
-        if (arg2 == 0)
-       arg2 = nullstr;
---- 2547,2551 ----
-        if (arg1 == 0)
-       arg1 = nullstr;
-!       arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0));
-        if (arg2 == 0)
-       arg2 = nullstr;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 9
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 10
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-011 b/src/patches/bash/bash32-011
deleted file mode 100644 (file)
index c021f52..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-011
-
-Bug-Reported-by: Petr Sumbera <Petr.Sumbera@Sun.COM>
-Bug-Reference-ID: <45AF5F4B.1020800@sun.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html
-
-Bug-Description:
-
-Under certain circumstances (loopback mounts), the bash getcwd does not
-return correct results.  This patch allows the use of the Solaris libc
-getcwd even though it doesn't dynamically allocate memory.
-
-Run `touch configure' to make sure make doesn't try to run autoconf.
-Then run configure with whatever options you like.
-
-Patch:
-
-*** ../bash-3.2-patched/configure.in   Tue Sep 26 11:05:45 2006
---- configure.in       Wed Jan 31 09:48:00 2007
-***************
-*** 6,10 ****
-  dnl Process this file with autoconf to produce a configure script.
-  
-! # Copyright (C) 1987-2006 Free Software Foundation, Inc.
-  
-  # This program is free software; you can redistribute it and/or modify
---- 6,10 ----
-  dnl Process this file with autoconf to produce a configure script.
-  
-! # Copyright (C) 1987-2007 Free Software Foundation, Inc.
-  
-  # This program is free software; you can redistribute it and/or modify
-***************
-*** 992,996 ****
-  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
-  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
-! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
-  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
-  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
---- 992,997 ----
-  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
-  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
-! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
-! solaris2*)   LOCAL_CFLAGS=-DSOLARIS ;;
-  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
-  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
-*** ../bash-3.2-patched/config-bot.h   Tue Sep 12 16:43:04 2006
---- config-bot.h       Tue Mar  6 10:41:31 2007
-***************
-*** 2,6 ****
-  /* modify settings or make new ones based on what autoconf tells us. */
-  
-! /* Copyright (C) 1989-2002 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
---- 2,6 ----
-  /* modify settings or make new ones based on what autoconf tells us. */
-  
-! /* Copyright (C) 1989-2007 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 71,77 ****
-  #endif
-  
-! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so
-!    the replacement in getcwd.c will be built. */
-! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN)
-  #  undef HAVE_GETCWD
-  #endif
---- 71,79 ----
-  #endif
-  
-! /* If we have a getcwd(3), but one that does not dynamically allocate memory,
-!    #undef HAVE_GETCWD so the replacement in getcwd.c will be built.  We do
-!    not do this on Solaris, because their implementation of loopback mounts
-!    breaks the traditional file system assumptions that getcwd uses. */
-! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS)
-  #  undef HAVE_GETCWD
-  #endif
-*** ../bash-3.2-patched/builtins/common.c      Thu Jul 27 09:39:51 2006
---- builtins/common.c  Tue Mar  6 10:43:27 2007
-***************
-*** 1,3 ****
-! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
---- 1,3 ----
-! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 476,480 ****
---- 476,484 ----
-    if (the_current_working_directory == 0)
-      {
-+ #if defined (GETCWD_BROKEN)
-+       the_current_working_directory = getcwd (0, PATH_MAX);
-+ #else
-        the_current_working_directory = getcwd (0, 0);
-+ #endif
-        if (the_current_working_directory == 0)
-       {
-*** ../bash-3.2-patched/configure      Tue Sep 26 11:06:01 2006
---- configure  Tue Mar  6 10:59:20 2007
-***************
-*** 27317,27321 ****
-  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
-  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
-! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
-  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
-  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
---- 27317,27322 ----
-  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
-  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
-! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
-! solaris2*)   LOCAL_CFLAGS=-DSOLARIS ;;
-  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
-  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 10
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 11
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-012 b/src/patches/bash/bash32-012
deleted file mode 100644 (file)
index 8d669d2..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-012
-
-Bug-Reported-by: John Wyman <JohnWyman@celink.com>
-Bug-Reference-ID: <5E7DEFC094C35044B87FAE761D9F0EE20143A3B7@exchange2k.celink.com>
-Bug-Reference-URL: 
-
-Bug-Description:
-
-Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly,
-causing syntax errors when attempting to compile bash on those systems.
-This patch adds support for the PRI_MACROS_BROKEN define.
-
-You will need to re-run `configure' after applying the patch.  Run
-`touch configure' so make doesn't try to run autoconf.
-
-Patch:
-
-*** ../bash-3.2.11/config.h.in Tue Sep 12 16:00:54 2006
---- config.h.in        Tue Mar  6 11:17:55 2007
-***************
-*** 1,5 ****
-  /* config.h -- Configuration file for bash. */
-  
-! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
---- 1,5 ----
-  /* config.h -- Configuration file for bash. */
-  
-! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
-  
-     This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 414,417 ****
---- 414,419 ----
-  #undef HAVE_DECL_STRTOLD
-  
-+ #undef PRI_MACROS_BROKEN
-+ 
-  #undef STRTOLD_BROKEN
-  
-***************
-*** 1007,1010 ****
---- 1009,1015 ----
-  #undef HAVE_DCGETTEXT
-  
-+ /* Define if you have the `localeconv' function. */
-+ #undef HAVE_LOCALECONV
-+ 
-  /* Define if your system has a working `malloc' function. */
-  /* #undef HAVE_MALLOC */
-*** ../bash-3.2.11/builtins/printf.def Mon Nov 13 08:58:52 2006
---- builtins/printf.def        Sun Feb  4 13:58:59 2007
-***************
-*** 2,6 ****
-  It implements the builtin "printf" in Bash.
-  
-! Copyright (C) 1997-2005 Free Software Foundation, Inc.
-  
-  This file is part of GNU Bash, the Bourne Again SHell.
---- 2,6 ----
-  It implements the builtin "printf" in Bash.
-  
-! Copyright (C) 1997-2007 Free Software Foundation, Inc.
-  
-  This file is part of GNU Bash, the Bourne Again SHell.
-***************
-*** 71,74 ****
---- 71,78 ----
-  #include "common.h"
-  
-+ #if defined (PRI_MACROS_BROKEN)
-+ #  undef PRIdMAX
-+ #endif
-+ 
-  #if !defined (PRIdMAX)
-  #  if HAVE_LONG_LONG
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 11
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 12
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-013 b/src/patches/bash/bash32-013
deleted file mode 100644 (file)
index d47bc1a..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-013
-
-Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
-Bug-Reference-ID: <45BDC44D.80609@mysql.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
-
-Bug-Description:
-
-Readline neglects to reallocate the array it uses to keep track of wrapped
-screen lines when increasing its size.  This will eventually result in
-segmentation faults when given sufficiently long input.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
---- lib/readline/display.c     Fri Feb  2 20:23:17 2007
-***************
-*** 561,574 ****
---- 561,586 ----
-        wrap_offset = prompt_invis_chars_first_line = 0;
-      }
-  
-+ #if defined (HANDLE_MULTIBYTE)
-  #define CHECK_INV_LBREAKS() \
-        do { \
-       if (newlines >= (inv_lbsize - 2)) \
-         { \
-           inv_lbsize *= 2; \
-           inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
-+          _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
-         } \
-        } while (0)
-+ #else
-+ #define CHECK_INV_LBREAKS() \
-+       do { \
-+      if (newlines >= (inv_lbsize - 2)) \
-+        { \
-+          inv_lbsize *= 2; \
-+          inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
-+        } \
-+       } while (0)
-+ #endif /* HANDLE_MULTIBYTE */
-  
-  #if defined (HANDLE_MULTIBYTE)         
-  #define CHECK_LPOS() \
-
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 12
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 13
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-014 b/src/patches/bash/bash32-014
deleted file mode 100644 (file)
index b706505..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-014
-
-Bug-Reported-by: Brett Stahlman <brettstahlman@comcast.net>
-Bug-Reference-ID: <000701c72d29$a227e0e0$5ec7cf47@computerroom>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html
-
-Bug-Description:
-
-Bash mishandles word splitting under certain circumstances when IFS is
-null (IFS=).  Constructs affected include ${param/pat/sub} and others
-when expanding arrays (array[@]).
-
-Patch:
-
-*** ../bash-3.2-patched/array.c        Wed Jun  1 16:39:22 2005
---- array.c    Mon Jan 15 22:58:00 2007
-***************
-*** 121,125 ****
-  }
-  
-- #ifdef INCLUDE_UNUSED
-  /*
-   * Make and return a new array composed of the elements in array A from
---- 121,124 ----
-***************
-*** 142,146 ****
-               n = array_create_element (element_index(p), element_value(p));
-               ADD_BEFORE(a->head, n);
-!              mi = element_index(ae);
-       }
-       a->num_elements = i;
---- 141,145 ----
-               n = array_create_element (element_index(p), element_value(p));
-               ADD_BEFORE(a->head, n);
-!              mi = element_index(n);
-       }
-       a->num_elements = i;
-***************
-*** 148,152 ****
-       return a;
-  }
-- #endif
-  
-  /*
---- 147,150 ----
-***************
-*** 301,304 ****
---- 299,319 ----
-  }
-  
-+ ARRAY        *
-+ array_quote_escapes(array)
-+ ARRAY        *array;
-+ {
-+      ARRAY_ELEMENT   *a;
-+      char    *t;
-+ 
-+      if (array == 0 || array_head(array) == 0 || array_empty(array))
-+              return (ARRAY *)NULL;
-+      for (a = element_forw(array->head); a != array->head; a = element_forw(a)) {
-+              t = quote_escapes (a->value);
-+              FREE(a->value);
-+              a->value = t;
-+      }
-+      return array;
-+ }
-+ 
-  /*
-   * Return a string whose elements are the members of array A beginning at
-***************
-*** 312,318 ****
-  int  starsub, quoted;
-  {
-       ARRAY_ELEMENT   *h, *p;
-       arrayind_t      i;
-!      char            *ifs, sep[2];
-  
-       p = a ? array_head (a) : 0;
---- 327,334 ----
-  int  starsub, quoted;
-  {
-+      ARRAY           *a2;
-       ARRAY_ELEMENT   *h, *p;
-       arrayind_t      i;
-!      char            *ifs, sep[2], *t;
-  
-       p = a ? array_head (a) : 0;
-***************
-*** 337,340 ****
---- 353,363 ----
-               ;
-  
-+      a2 = array_slice(a, h, p);
-+ 
-+      if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
-+              array_quote(a2);
-+      else
-+              array_quote_escapes(a2);
-+ 
-       if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) {
-               ifs = getifs();
-***************
-*** 344,348 ****
-       sep[1] = '\0';
-  
-!      return (array_to_string_internal (h, p, sep, quoted));
-  }
-  
---- 367,374 ----
-       sep[1] = '\0';
-  
-!      t = array_to_string (a2, sep, 0);
-!      array_dispose(a2);
-! 
-!      return t;
-  }
-  
-***************
-*** 368,372 ****
-  
-       if (mflags & MATCH_QUOTED)
-!              array_quote (a2);
-       if (mflags & MATCH_STARSUB) {
-               ifs = getifs();
---- 394,400 ----
-  
-       if (mflags & MATCH_QUOTED)
-!              array_quote(a2);
-!      else
-!              array_quote_escapes(a2);
-       if (mflags & MATCH_STARSUB) {
-               ifs = getifs();
-*** ../bash-3.2-patched/array.h        Sun Jun  1 15:50:30 2003
---- array.h    Mon Jan 15 22:35:35 2007
-***************
-*** 56,59 ****
---- 56,60 ----
-  extern int   array_shift_element __P((ARRAY *, char *));
-  extern ARRAY *array_quote __P((ARRAY *));
-+ extern ARRAY *array_quote_escapes __P((ARRAY *));
-  
-  extern char  *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int));
-*** ../bash-3.2-patched/subst.c        Fri Mar  2 16:20:50 2007
---- subst.c    Tue Mar  6 11:40:55 2007
-***************
-*** 1888,1892 ****
---- 1889,1899 ----
-  #endif
-  
-+   /* XXX -- why call quote_list if ifs == 0?  we can get away without doing
-+      it now that quote_escapes quotes spaces */
-+ #if 0
-    tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0))
-+ #else
-+   tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
-+ #endif
-               ? quote_list (list)
-               : list_quote_escapes (list);
-***************
-*** 2922,2926 ****
-  /* Quote escape characters in string s, but no other characters.  This is
-     used to protect CTLESC and CTLNUL in variable values from the rest of
-!    the word expansion process after the variable is expanded. */
-  char *
-  quote_escapes (string)
---- 2935,2944 ----
-  /* Quote escape characters in string s, but no other characters.  This is
-     used to protect CTLESC and CTLNUL in variable values from the rest of
-!    the word expansion process after the variable is expanded.  If IFS is
-!    null, we quote spaces as well, just in case we split on spaces later
-!    (in the case of unquoted $@, we will eventually attempt to split the
-!    entire word on spaces).  Corresponding code exists in dequote_escapes.
-!    Even if we don't end up splitting on spaces, quoting spaces is not a
-!    problem. */
-  char *
-  quote_escapes (string)
-***************
-*** 2930,2933 ****
---- 2948,2952 ----
-    size_t slen;
-    char *result, *send;
-+   int quote_spaces;
-    DECLARE_MBSTATE; 
-  
-***************
-*** 2935,2938 ****
---- 2954,2958 ----
-    send = string + slen;
-  
-+   quote_spaces = (ifs_value && *ifs_value == 0);
-    t = result = (char *)xmalloc ((slen * 2) + 1);
-    s = string;
-***************
-*** 2940,2944 ****
-    while (*s)
-      {
-!       if (*s == CTLESC || *s == CTLNUL)
-       *t++ = CTLESC;
-        COPY_CHAR_P (t, s, send);
---- 2960,2964 ----
-    while (*s)
-      {
-!       if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' '))
-       *t++ = CTLESC;
-        COPY_CHAR_P (t, s, send);
-***************
-*** 2982,2985 ****
---- 3002,3006 ----
-    size_t slen;
-    char *result, *send;
-+   int quote_spaces;
-    DECLARE_MBSTATE;
-  
-***************
-*** 2996,3002 ****
-      return (strcpy (result, s));
-  
-    while (*s)
-      {
-!       if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL))
-       {
-         s++;
---- 3017,3024 ----
-      return (strcpy (result, s));
-  
-+   quote_spaces = (ifs_value && *ifs_value == 0);
-    while (*s)
-      {
-!       if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' ')))
-       {
-         s++;
-***************
-*** 4462,4466 ****
-        RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
-  
-!       if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL)
-       istring[istring_index++] = CTLESC;
-  
---- 4498,4510 ----
-        RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
-  
-!       /* This is essentially quote_string inline */
-!       if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */)
-!      istring[istring_index++] = CTLESC;
-!       /* Escape CTLESC and CTLNUL in the output to protect those characters
-!       from the rest of the word expansions (word splitting and globbing.)
-!       This is essentially quote_escapes inline. */
-!       else if (c == CTLESC)
-!      istring[istring_index++] = CTLESC;
-!       else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0)))
-       istring[istring_index++] = CTLESC;
-  
-***************
-*** 5552,5555 ****
---- 5610,5616 ----
-        rely on array_subrange to understand how to deal with them). */
-        tt = array_subrange (array_cell (v), e1, e2, starsub, quoted);
-+ #if 0
-+       /* array_subrange now calls array_quote_escapes as appropriate, so the
-+       caller no longer needs to. */
-        if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
-       {
-***************
-*** 5558,5561 ****
---- 5619,5623 ----
-       }
-        else
-+ #endif
-       temp = tt;
-        break;
-***************
-*** 5808,5811 ****
---- 5870,5876 ----
-      case VT_ARRAYVAR:
-        temp = array_patsub (array_cell (v), p, rep, mflags);
-+ #if 0
-+       /* Don't need to do this anymore; array_patsub calls array_quote_escapes
-+       as appropriate before adding the space separators. */
-        if (temp && (mflags & MATCH_QUOTED) == 0)
-       {
-***************
-*** 5814,5817 ****
---- 5879,5883 ----
-         temp = tt;
-       }
-+ #endif
-        break;
-  #endif
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 13
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 14
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-015 b/src/patches/bash/bash32-015
deleted file mode 100644 (file)
index d887f6e..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-015
-
-Bug-Reported-by:
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-Under certain circumstances, when using FIFOs for process substitution,
-bash fails to unlink the FIFOs.  This leaves open file descriptors that
-can cause the shell to hang and litters the file system.
-
-Patch:
-
-*** ../bash-3.2-patched/execute_cmd.c  Fri Mar  2 16:20:50 2007
---- execute_cmd.c      Wed Jan 31 23:12:06 2007
-***************
-*** 3051,3054 ****
---- 3051,3059 ----
-      command_line = savestring (the_printed_command_except_trap);
-  
-+ #if defined (PROCESS_SUBSTITUTION)
-+   if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0)
-+     simple_command->flags &= ~CMD_NO_FORK;
-+ #endif
-+ 
-    execute_disk_command (words, simple_command->redirects, command_line,
-                       pipe_in, pipe_out, async, fds_to_close,
-*** ../bash-3.2-patched/subst.c        Fri Mar  2 16:20:50 2007
---- subst.c    Tue Mar  6 11:40:55 2007
-***************
-*** 4129,4132 ****
---- 4151,4160 ----
-  }
-  
-+ int
-+ fifos_pending ()
-+ {
-+   return nfifo;
-+ }
-+ 
-  static char *
-  make_named_pipe ()
-***************
-*** 4178,4181 ****
---- 4206,4215 ----
-  }
-  
-+ int
-+ fifos_pending ()
-+ {
-+   return 0;  /* used for cleanup; not needed with /dev/fd */
-+ }
-+ 
-  void
-  unlink_fifo_list ()
-***************
-*** 4671,4674 ****
---- 4719,4725 ----
-        last_command_exit_value = rc;
-        rc = run_exit_trap ();
-+ #if defined (PROCESS_SUBSTITUTION)
-+       unlink_fifo_list ();
-+ #endif
-        exit (rc);
-      }
-*** ../bash-3.2-patched/subst.h        Tue Sep 19 08:34:41 2006
---- subst.h    Wed Jan 10 09:46:47 2007
-***************
-*** 223,226 ****
---- 223,227 ----
-  extern char *pat_subst __P((char *, char *, char *, int));
-  
-+ extern int fifos_pending __P((void));
-  extern void unlink_fifo_list __P((void));
-
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 14
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 15
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-016 b/src/patches/bash/bash32-016
deleted file mode 100644 (file)
index a0f065a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-016
-
-Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
-Bug-Reference-ID: <1171795523.8021.18.camel@localhost>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html
-
-Bug-Description:
-
-When moving the cursor, bash sometimes misplaces the cursor when the prompt
-contains two or more multibyte characters.  The particular circumstance that
-uncovered the problem was having the (multibyte) current directory name in
-the prompt string.
-
-Patch:
-
-*** ../bash-3.2/lib/readline/display.c Fri Jan 19 13:34:50 2007
---- lib/readline/display.c     Sat Mar 10 17:25:44 2007
-***************
-*** 1745,1749 ****
-      {
-        dpos = _rl_col_width (data, 0, new);
-!       if (dpos > prompt_last_invisible)              /* XXX - don't use woff here */
-       {
-         dpos -= woff;
---- 1745,1752 ----
-      {
-        dpos = _rl_col_width (data, 0, new);
-!       /* Use NEW when comparing against the last invisible character in the
-!       prompt string, since they're both buffer indices and DPOS is a
-!       desired display position. */
-!       if (new > prompt_last_invisible)               /* XXX - don't use woff here */
-       {
-         dpos -= woff;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 15
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 16
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-017 b/src/patches/bash/bash32-017
deleted file mode 100644 (file)
index 99e5e70..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-017
-
-Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
-Bug-Reference-ID: <1173636022.7039.36.camel@localhost>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
-
-Bug-Description:
-
-When restoring the original prompt after finishing an incremental search,
-bash sometimes places the cursor incorrectly if the primary prompt contains
-invisible characters.
-
-Patch:
-
-*** ../bash-3.2.16/lib/readline/display.c      Fri Apr 20 13:30:16 2007
---- lib/readline/display.c     Fri Apr 20 15:17:01 2007
-***************
-*** 1599,1604 ****
-         if (temp > 0)
-           {
-             _rl_output_some_chars (nfd, temp);
-!            _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
-           }
-       }
---- 1599,1618 ----
-         if (temp > 0)
-           {
-+            /* If nfd begins at the prompt, or before the invisible
-+               characters in the prompt, we need to adjust _rl_last_c_pos
-+               in a multibyte locale to account for the wrap offset and
-+               set cpos_adjusted accordingly. */
-             _rl_output_some_chars (nfd, temp);
-!            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-!              {
-!                   _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
-!                   if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
-!                  {
-!                    _rl_last_c_pos -= wrap_offset;
-!                    cpos_adjusted = 1;
-!                  }
-!              }
-!               else
-!                 _rl_last_c_pos += temp;
-           }
-       }
-***************
-*** 1608,1613 ****
---- 1622,1639 ----
-         if (temp > 0)
-           {
-+            /* If nfd begins at the prompt, or before the invisible
-+               characters in the prompt, we need to adjust _rl_last_c_pos
-+               in a multibyte locale to account for the wrap offset and
-+               set cpos_adjusted accordingly. */
-             _rl_output_some_chars (nfd, temp);
-             _rl_last_c_pos += col_temp;               /* XXX */
-+            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-+              {
-+                if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
-+                  {
-+                    _rl_last_c_pos -= wrap_offset;
-+                    cpos_adjusted = 1;
-+                  }
-+              }
-           }
-         lendiff = (oe - old) - (ne - new);
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 16
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 17
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-018 b/src/patches/bash/bash32-018
deleted file mode 100644 (file)
index d729aaf..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-018
-
-Bug-Reported-by:       osicka@post.cz
-Bug-Reference-ID:      <228.177-19682-1132061412-1179356692@post.cz>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00061.html
-
-Bug-Description:
-
-In certain cases, bash can lose the saved status of a background job, though
-it should still be reported by `wait'.  Bash can also loop infinitely after
-creating and waiting for 4096 jobs.
-
-Patch:
-
-*** ../bash-20070510/jobs.c    Thu Mar  8 16:05:50 2007
---- jobs.c     Fri May 18 11:40:14 2007
-***************
-*** 784,792 ****
-      {
-        old = js.j_firstj++;
-        while (js.j_firstj != old)
-       {
-         if (js.j_firstj >= js.j_jobslots)
-           js.j_firstj = 0;
-!        if (jobs[js.j_firstj])
-           break;
-         js.j_firstj++;
---- 784,794 ----
-      {
-        old = js.j_firstj++;
-+       if (old >= js.j_jobslots)
-+      old = js.j_jobslots - 1;
-        while (js.j_firstj != old)
-       {
-         if (js.j_firstj >= js.j_jobslots)
-           js.j_firstj = 0;
-!        if (jobs[js.j_firstj] || js.j_firstj == old)  /* needed if old == 0 */
-           break;
-         js.j_firstj++;
-***************
-*** 798,806 ****
-      {
-        old = js.j_lastj--;
-        while (js.j_lastj != old)
-       {
-         if (js.j_lastj < 0)
-           js.j_lastj = js.j_jobslots - 1;
-!        if (jobs[js.j_lastj])
-           break;
-         js.j_lastj--;
---- 800,810 ----
-      {
-        old = js.j_lastj--;
-+       if (old < 0)
-+      old = 0;
-        while (js.j_lastj != old)
-       {
-         if (js.j_lastj < 0)
-           js.j_lastj = js.j_jobslots - 1;
-!        if (jobs[js.j_lastj] || js.j_lastj == old)    /* needed if old == js.j_jobslots */
-           break;
-         js.j_lastj--;
-***************
-*** 964,968 ****
-    realloc_jobs_list ();
-  
-!   return (js.j_lastj);
-  }
-  
---- 975,983 ----
-    realloc_jobs_list ();
-  
-! #ifdef DEBUG
-!   itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
-! #endif
-! 
-!   return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
-  }
-  
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 17
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 18
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-019 b/src/patches/bash/bash32-019
deleted file mode 100644 (file)
index 647bd1f..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-019
-
-Bug-Reported-by:       Thomas Loeber <ifp@loeber1.de>
-Bug-Reference-ID:      <200703082223.08919.ifp@loeber1.de>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html
-
-Bug-Description:
-
-When rl_read_key returns -1, indicating that bash's controlling terminal
-has been invalidated for some reason (e.g., receiving a SIGHUP), the error
-status was not reported correctly to the caller.  This could cause input
-loops. 
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/complete.c        Fri Jul 28 11:35:49 2006
---- lib/readline/complete.c    Tue Mar 13 08:50:16 2007
-***************
-*** 429,433 ****
-        if (c == 'n' || c == 'N' || c == RUBOUT)
-       return (0);
-!       if (c == ABORT_CHAR)
-       _rl_abort_internal ();
-        if (for_pager && (c == NEWLINE || c == RETURN))
---- 440,444 ----
-        if (c == 'n' || c == 'N' || c == RUBOUT)
-       return (0);
-!       if (c == ABORT_CHAR || c < 0)
-       _rl_abort_internal ();
-        if (for_pager && (c == NEWLINE || c == RETURN))
-*** ../bash-3.2-patched/lib/readline/input.c   Wed Aug 16 15:15:16 2006
---- lib/readline/input.c       Wed May  2 16:07:59 2007
-***************
-*** 514,518 ****
-       int size;
-  {
-!   int mb_len = 0;
-    size_t mbchar_bytes_length;
-    wchar_t wc;
---- 522,526 ----
-       int size;
-  {
-!   int mb_len, c;
-    size_t mbchar_bytes_length;
-    wchar_t wc;
-***************
-*** 521,531 ****
-    memset(&ps, 0, sizeof (mbstate_t));
-    memset(&ps_back, 0, sizeof (mbstate_t));
-!   
-    while (mb_len < size)
-      {
-        RL_SETSTATE(RL_STATE_MOREINPUT);
-!       mbchar[mb_len++] = rl_read_key ();
-        RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  
-        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
-        if (mbchar_bytes_length == (size_t)(-1))
---- 529,545 ----
-    memset(&ps, 0, sizeof (mbstate_t));
-    memset(&ps_back, 0, sizeof (mbstate_t));
-! 
-!   mb_len = 0;  
-    while (mb_len < size)
-      {
-        RL_SETSTATE(RL_STATE_MOREINPUT);
-!       c = rl_read_key ();
-        RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  
-+       if (c < 0)
-+      break;
-+ 
-+       mbchar[mb_len++] = c;
-+ 
-        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
-        if (mbchar_bytes_length == (size_t)(-1))
-***************
-*** 565,569 ****
-    c = first;
-    memset (mb, 0, mlen);
-!   for (i = 0; i < mlen; i++)
-      {
-        mb[i] = (char)c;
---- 579,583 ----
-    c = first;
-    memset (mb, 0, mlen);
-!   for (i = 0; c >= 0 && i < mlen; i++)
-      {
-        mb[i] = (char)c;
-*** ../bash-3.2-patched/lib/readline/isearch.c Mon Dec 26 17:18:53 2005
---- lib/readline/isearch.c     Fri Mar  9 14:30:59 2007
-***************
-*** 328,333 ****
-  
-    f = (rl_command_func_t *)NULL;
-!  
-!  /* Translate the keys we do something with to opcodes. */
-    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
-      {
---- 328,340 ----
-  
-    f = (rl_command_func_t *)NULL;
-! 
-!   if (c < 0)
-!     {
-!       cxt->sflags |= SF_FAILED;
-!       cxt->history_pos = cxt->last_found_line;
-!       return -1;
-!     }
-! 
-!   /* Translate the keys we do something with to opcodes. */
-    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
-      {
-*** ../bash-3.2-patched/lib/readline/misc.c    Mon Dec 26 17:20:46 2005
---- lib/readline/misc.c        Fri Mar  9 14:44:11 2007
-***************
-*** 147,150 ****
---- 147,152 ----
-         rl_clear_message ();
-         RL_UNSETSTATE(RL_STATE_NUMERICARG);
-+        if (key < 0)
-+          return -1;
-         return (_rl_dispatch (key, _rl_keymap));
-       }
-*** ../bash-3.2-patched/lib/readline/readline.c        Wed Aug 16 15:00:36 2006
---- lib/readline/readline.c    Fri Mar  9 14:47:24 2007
-***************
-*** 646,649 ****
---- 669,677 ----
-      {
-        nkey = _rl_subseq_getchar (cxt->okey);
-+       if (nkey < 0)
-+      {
-+        _rl_abort_internal ();
-+        return -1;
-+      }
-        r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
-        cxt->flags |= KSEQ_DISPATCHED;
-*** ../bash-3.2-patched/lib/readline/text.c    Fri Jul 28 11:55:27 2006
---- lib/readline/text.c        Sun Mar 25 13:41:38 2007
-***************
-*** 858,861 ****
---- 864,870 ----
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  
-+   if (c < 0)
-+     return -1;
-+ 
-  #if defined (HANDLE_SIGNALS)
-    if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
-***************
-*** 1521,1524 ****
---- 1530,1536 ----
-    mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
-  
-+   if (mb_len <= 0)
-+     return -1;
-+ 
-    if (count < 0)
-      return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
-***************
-*** 1537,1540 ****
---- 1549,1555 ----
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  
-+   if (c < 0)
-+     return -1;
-+ 
-    if (count < 0)
-      return (_rl_char_search_internal (-count, bdir, c));
-*** ../bash-3.2-patched/lib/readline/vi_mode.c Sat Jul 29 16:42:28 2006
---- lib/readline/vi_mode.c     Fri Mar  9 15:02:11 2007
-***************
-*** 887,890 ****
---- 887,897 ----
-    c = rl_read_key ();
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-+ 
-+   if (c < 0)
-+     {
-+       *nextkey = 0;
-+       return -1;
-+     }
-+ 
-    *nextkey = c;
-  
-***************
-*** 903,906 ****
---- 910,918 ----
-         c = rl_read_key ();   /* real command */
-         RL_UNSETSTATE(RL_STATE_MOREINPUT);
-+        if (c < 0)
-+          {
-+            *nextkey = 0;
-+            return -1;
-+          }
-         *nextkey = c;
-       }
-***************
-*** 1225,1236 ****
-       _rl_callback_generic_arg *data;
-  {
-  #if defined (HANDLE_MULTIBYTE)
-!   _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
-  #else
-    RL_SETSTATE(RL_STATE_MOREINPUT);
-!   _rl_vi_last_search_char = rl_read_key ();
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  #endif
-  
-    _rl_callback_func = 0;
-    _rl_want_redisplay = 1;
---- 1243,1262 ----
-       _rl_callback_generic_arg *data;
-  {
-+   int c;
-  #if defined (HANDLE_MULTIBYTE)
-!   c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
-  #else
-    RL_SETSTATE(RL_STATE_MOREINPUT);
-!   c = rl_read_key ();
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  #endif
-  
-+   if (c <= 0)
-+     return -1;
-+ 
-+ #if !defined (HANDLE_MULTIBYTE)
-+   _rl_vi_last_search_char = c;
-+ #endif
-+ 
-    _rl_callback_func = 0;
-    _rl_want_redisplay = 1;
-***************
-*** 1248,1251 ****
---- 1274,1278 ----
-       int count, key;
-  {
-+   int c;
-  #if defined (HANDLE_MULTIBYTE)
-    static char *target;
-***************
-*** 1294,1302 ****
-       {
-  #if defined (HANDLE_MULTIBYTE)
-!        _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
-  #else
-         RL_SETSTATE(RL_STATE_MOREINPUT);
-!        _rl_vi_last_search_char = rl_read_key ();
-         RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  #endif
-       }
---- 1321,1335 ----
-       {
-  #if defined (HANDLE_MULTIBYTE)
-!        c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
-!        if (c <= 0)
-!          return -1;
-!        _rl_vi_last_search_mblen = c;
-  #else
-         RL_SETSTATE(RL_STATE_MOREINPUT);
-!        c = rl_read_key ();
-         RL_UNSETSTATE(RL_STATE_MOREINPUT);
-+        if (c < 0)
-+          return -1;
-+        _rl_vi_last_search_char = c;
-  #endif
-       }
-***************
-*** 1468,1471 ****
---- 1501,1507 ----
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  
-+   if (c < 0)
-+     return -1;
-+ 
-  #if defined (HANDLE_MULTIBYTE)
-    if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-***************
-*** 1486,1489 ****
---- 1522,1528 ----
-    _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
-  
-+   if (c < 0)
-+     return -1;
-+ 
-    _rl_callback_func = 0;
-    _rl_want_redisplay = 1;
-***************
-*** 1517,1520 ****
---- 1556,1562 ----
-      _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
-  
-+   if (c < 0)
-+     return -1;
-+ 
-    return (_rl_vi_change_char (count, c, mb));
-  }
-***************
-*** 1651,1655 ****
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  
-!   if (ch < 'a' || ch > 'z')
-      {
-        rl_ding ();
---- 1693,1697 ----
-    RL_UNSETSTATE(RL_STATE_MOREINPUT);
-  
-!   if (ch < 0 || ch < 'a' || ch > 'z')        /* make test against 0 explicit */
-      {
-        rl_ding ();
-***************
-*** 1703,1707 ****
-        return 0;
-      }
-!   else if (ch < 'a' || ch > 'z')
-      {
-        rl_ding ();
---- 1745,1749 ----
-        return 0;
-      }
-!   else if (ch < 0 || ch < 'a' || ch > 'z')   /* make test against 0 explicit */
-      {
-        rl_ding ();
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 18
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 19
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-020 b/src/patches/bash/bash32-020
deleted file mode 100644 (file)
index 8c7e328..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-020
-
-Bug-Reported-by:       Ian A Watson <WATSON_IAN_A@LILLY.COM>
-Bug-Reference-ID:      <OFEC551808.69D02C7F-ON8525729A.0045708D-8525729A.0046150B@EliLilly.lilly.com>
-Bug-Reference-URL:
-
-Bug-Description:
-
-In some cases of error processing, a jump back to the top-level processing
-loop from a builtin command  would leave the shell in an inconsistent state.
-
-Patch:
-
-*** ../bash-3.2-patched/sig.c  Wed Jan 25 14:57:59 2006
---- sig.c      Sat Mar 10 11:11:30 2007
-***************
-*** 351,354 ****
---- 351,373 ----
-  #undef XHANDLER
-  
-+ /* Run some of the cleanups that should be performed when we run
-+    jump_to_top_level from a builtin command context.  XXX - might want to
-+    also call reset_parser here. */
-+ void
-+ top_level_cleanup ()
-+ {
-+   /* Clean up string parser environment. */
-+   while (parse_and_execute_level)
-+     parse_and_execute_cleanup ();
-+ 
-+ #if defined (PROCESS_SUBSTITUTION)
-+   unlink_fifo_list ();
-+ #endif /* PROCESS_SUBSTITUTION */
-+ 
-+   run_unwind_protects ();
-+   loop_level = continuing = breaking = 0;
-+   return_catch_flag = 0;
-+ }
-+ 
-  /* What to do when we've been interrupted, and it is safe to handle it. */
-  void
-*** ../bash-3.2-patched/sig.h  Wed Jan 25 14:50:27 2006
---- sig.h      Sat Mar 10 11:14:18 2007
-***************
-*** 122,125 ****
---- 122,126 ----
-  extern void initialize_terminating_signals __P((void));
-  extern void reset_terminating_signals __P((void));
-+ extern void top_level_cleanup __P((void));
-  extern void throw_to_top_level __P((void));
-  extern void jump_to_top_level __P((int)) __attribute__((__noreturn__));
-*** ../bash-3.2-patched/builtins/common.c      Tue Apr  3 16:47:13 2007
---- builtins/common.c  Mon Apr 30 15:01:33 2007
-***************
-*** 132,135 ****
---- 132,136 ----
-      {
-        builtin_error (_("too many arguments"));
-+       top_level_cleanup ();
-        jump_to_top_level (DISCARD);
-      }
-***************
-*** 396,400 ****
-           throw_to_top_level ();
-         else
-!          jump_to_top_level (DISCARD);
-       }
-        no_args (list->next);
---- 410,417 ----
-           throw_to_top_level ();
-         else
-!          {
-!            top_level_cleanup ();
-!            jump_to_top_level (DISCARD);
-!          }
-       }
-        no_args (list->next);
-*** ../bash-3.2-patched/subst.c        Tue Apr  3 16:47:19 2007
---- subst.c    Tue Jul 17 09:45:11 2007
-***************
-*** 1279,1283 ****
-        if (no_longjmp_on_fatal_error == 0)
-       {                       /* { */
-!        report_error ("bad substitution: no closing `%s' in %s", "}", string);
-         last_command_exit_value = EXECUTION_FAILURE;
-         exp_jump_to_top_level (DISCARD);
---- 1290,1294 ----
-        if (no_longjmp_on_fatal_error == 0)
-       {                       /* { */
-!        report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
-         last_command_exit_value = EXECUTION_FAILURE;
-         exp_jump_to_top_level (DISCARD);
-***************
-*** 7662,7665 ****
---- 7706,7711 ----
-    expand_no_split_dollar_star = 0;   /* XXX */
-    expanding_redir = 0;
-+ 
-+   top_level_cleanup ();                      /* from sig.c */
-  
-    jump_to_top_level (v);
-***************
-*** 7880,7884 ****
-           {
-             report_error (_("no match: %s"), tlist->word->word);
-!            jump_to_top_level (DISCARD);
-           }
-         else if (allow_null_glob_expansion == 0)
---- 7927,7931 ----
-           {
-             report_error (_("no match: %s"), tlist->word->word);
-!            exp_jump_to_top_level (DISCARD);
-           }
-         else if (allow_null_glob_expansion == 0)
-*** ../bash-3.2-patched/arrayfunc.c    Thu Jul 27 09:37:59 2006
---- arrayfunc.c        Thu May 31 11:55:46 2007
-***************
-*** 619,622 ****
---- 619,624 ----
-      {
-        last_command_exit_value = EXECUTION_FAILURE;
-+ 
-+       top_level_cleanup ();      
-        jump_to_top_level (DISCARD);
-      }
-*** ../bash-3.2-patched/expr.c Wed Dec 28 17:47:03 2005
---- expr.c     Tue Apr 24 14:17:59 2007
-***************
-*** 930,933 ****
---- 930,934 ----
-       {
-         expr_unwind ();
-+        top_level_cleanup ();
-         jump_to_top_level (DISCARD);
-       }
-*** ../bash-3.2-patched/variables.c    Fri Sep  8 13:33:32 2006
---- variables.c        Tue Jul 17 09:54:59 2007
-***************
-*** 1822,1830 ****
-         lval = evalexp (oval, &expok);        /* ksh93 seems to do this */
-         if (expok == 0)
-!          jump_to_top_level (DISCARD);
-       }
-        rval = evalexp (value, &expok);
-        if (expok == 0)
-!      jump_to_top_level (DISCARD);
-        if (flags & ASS_APPEND)
-       rval += lval;
---- 1855,1869 ----
-         lval = evalexp (oval, &expok);        /* ksh93 seems to do this */
-         if (expok == 0)
-!          {
-!            top_level_cleanup ();
-!            jump_to_top_level (DISCARD);
-!          }
-       }
-        rval = evalexp (value, &expok);
-        if (expok == 0)
-!      {
-!        top_level_cleanup ();
-!        jump_to_top_level (DISCARD);
-!      }
-        if (flags & ASS_APPEND)
-       rval += lval;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 19
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 20
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-021 b/src/patches/bash/bash32-021
deleted file mode 100644 (file)
index 003489c..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-021
-
-Bug-Reported-by:       BAGSHAW Paul RD-TECH-REN <paul.bagshaw@orange-ftgroup.com>
-Bug-Reference-ID:      <941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html
-
-Bug-Description:
-
-When the parser read a backslash-escaped character that would be treated
-internally as an escape, it would double the number of escape characters.
-
-Patch:
-
-*** ../bash-3.2-patched/parse.y        Mon Oct 30 17:22:00 2006
---- parse.y    Sat Mar 24 17:13:20 2007
-***************
-*** 3377,3381 ****
-       {
-         pass_next_character = 0;
-!        goto got_character;
-       }
-  
---- 3377,3381 ----
-       {
-         pass_next_character = 0;
-!        goto got_escaped_character;
-       }
-  
-***************
-*** 3651,3660 ****
-      got_character:
-  
--       all_digit_token &= DIGIT (character);
--       dollar_present |= character == '$';
-- 
-        if (character == CTLESC || character == CTLNUL)
-       token[token_index++] = CTLESC;
-  
-        token[token_index++] = character;
-  
---- 3651,3662 ----
-      got_character:
-  
-        if (character == CTLESC || character == CTLNUL)
-       token[token_index++] = CTLESC;
-  
-+     got_escaped_character:
-+ 
-+       all_digit_token &= DIGIT (character);
-+       dollar_present |= character == '$';
-+ 
-        token[token_index++] = character;
-  
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 20
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 21
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-022 b/src/patches/bash/bash32-022
deleted file mode 100644 (file)
index d3679e6..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-022
-
-Bug-Reported-by:       Chet Ramey <chet.ramey@cwru.edu>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-POSIX specifies that the `read' builtin invoked from an interative shell
-must prompt with $PS2 when a line is continued using a backslash while
-reading from a terminal.
-
-Patch:
-
-*** ../bash-3.2-patched/builtins/read.def      Tue Sep 19 08:45:48 2006
---- builtins/read.def  Thu May 24 16:03:30 2007
-***************
-*** 128,133 ****
-  {
-    register char *varname;
-!   int size, i, nr, pass_next, saw_escape, eof, opt, retval, code;
-!   int input_is_tty, input_is_pipe, unbuffered_read;
-    int raw, edit, nchars, silent, have_timeout, fd;
-    unsigned int tmout;
---- 131,136 ----
-  {
-    register char *varname;
-!   int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
-!   int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
-    int raw, edit, nchars, silent, have_timeout, fd;
-    unsigned int tmout;
-***************
-*** 135,139 ****
-    char c;
-    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
-!   char *e, *t, *t1;
-    struct stat tsb;
-    SHELL_VAR *var;
---- 138,142 ----
-    char c;
-    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
-!   char *e, *t, *t1, *ps2;
-    struct stat tsb;
-    SHELL_VAR *var;
-***************
-*** 149,152 ****
---- 152,156 ----
-    USE_VAR(i);
-    USE_VAR(pass_next);
-+   USE_VAR(print_ps2);
-    USE_VAR(saw_escape);
-    USE_VAR(input_is_pipe);
-***************
-*** 164,167 ****
---- 168,172 ----
-  #endif
-    USE_VAR(list);
-+   USE_VAR(ps2);
-  
-    i = 0;             /* Index into the string that we are reading. */
-***************
-*** 387,391 ****
-  #endif
-  
-!   for (eof = retval = 0;;)
-      {
-  #if defined (READLINE)
---- 394,399 ----
-  #endif
-  
-!   ps2 = 0;
-!   for (print_ps2 = eof = retval = 0;;)
-      {
-  #if defined (READLINE)
-***************
-*** 413,416 ****
---- 421,433 ----
-  #endif
-  
-+       if (print_ps2)
-+      {
-+        if (ps2 == 0)
-+          ps2 = get_string_value ("PS2");
-+        fprintf (stderr, "%s", ps2 ? ps2 : "");
-+        fflush (stderr);
-+        print_ps2 = 0;
-+      }
-+ 
-        if (unbuffered_read)
-       retval = zread (fd, &c, 1);
-***************
-*** 441,445 ****
-         pass_next = 0;
-         if (c == '\n')
-!          i--;                /* back up over the CTLESC */
-         else
-           goto add_char;
---- 458,466 ----
-         pass_next = 0;
-         if (c == '\n')
-!          {
-!            i--;              /* back up over the CTLESC */
-!            if (interactive && input_is_tty && raw == 0)
-!              print_ps2 = 1;
-!          }
-         else
-           goto add_char;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 21
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 22
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-023 b/src/patches/bash/bash32-023
deleted file mode 100644 (file)
index 34a6394..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-023
-
-Bug-Reported-by:       Chet Ramey <chet.ramey@cwru.edu>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-When an error occurs during the pattern removal word expansion, the shell
-can free unallocated memory or free memory multiple times.
-
-Patch:
-
-*** ../bash-3.2-patched/subst.c        Tue Apr  3 16:47:19 2007
---- subst.c    Tue Jul 17 09:45:11 2007
-***************
-*** 3975,3979 ****
-      patstr++;
-  
-!   pattern = getpattern (patstr, quoted, 1);
-  
-    temp1 = (char *)NULL;              /* shut up gcc */
---- 4008,4016 ----
-      patstr++;
-  
-!   /* Need to pass getpattern newly-allocated memory in case of expansion --
-!      the expansion code will free the passed string on an error. */
-!   temp1 = savestring (patstr);
-!   pattern = getpattern (temp1, quoted, 1);
-!   free (temp1);
-  
-    temp1 = (char *)NULL;              /* shut up gcc */
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 22
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 23
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-024 b/src/patches/bash/bash32-024
deleted file mode 100644 (file)
index 1575f37..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-024
-
-Bug-Reported-by:       Peter Volkov <torre_cremata@mail.ru>
-Bug-Reference-ID:      <1178376645.9063.25.camel@localhost>
-Bug-Reference-URL:     http://bugs.gentoo.org/177095
-
-Bug-Description:
-
-The readline display code miscalculated the screen position when performing
-a redisplay in which the new text occupies more screen space that the old,
-but takes fewer bytes to do so (e.g., when replacing a shorter string
-containing multibyte characters with a longer one containing only ASCII).
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/display.c Thu Apr 26 11:38:22 2007
---- lib/readline/display.c     Thu Jul 12 23:10:10 2007
-***************
-*** 1519,1527 ****
-        /* Non-zero if we're increasing the number of lines. */
-        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
-        /* Sometimes it is cheaper to print the characters rather than
-        use the terminal's capabilities.  If we're growing the number
-        of lines, make sure we actually cause the new line to wrap
-        around on auto-wrapping terminals. */
-!       if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
-       {
-         /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
---- 1568,1596 ----
-        /* Non-zero if we're increasing the number of lines. */
-        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
-+       /* If col_lendiff is > 0, implying that the new string takes up more
-+       screen real estate than the old, but lendiff is < 0, meaning that it
-+       takes fewer bytes, we need to just output the characters starting
-+       from the first difference.  These will overwrite what is on the
-+       display, so there's no reason to do a smart update.  This can really
-+       only happen in a multibyte environment. */
-+       if (lendiff < 0)
-+      {
-+        _rl_output_some_chars (nfd, temp);
-+        _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
-+        /* If nfd begins before any invisible characters in the prompt,
-+           adjust _rl_last_c_pos to account for wrap_offset and set
-+           cpos_adjusted to let the caller know. */
-+        if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
-+          {
-+            _rl_last_c_pos -= wrap_offset;
-+            cpos_adjusted = 1;
-+          }
-+        return;
-+      }
-        /* Sometimes it is cheaper to print the characters rather than
-        use the terminal's capabilities.  If we're growing the number
-        of lines, make sure we actually cause the new line to wrap
-        around on auto-wrapping terminals. */
-!       else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
-       {
-         /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 23
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 24
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-025 b/src/patches/bash/bash32-025
deleted file mode 100644 (file)
index 4d53d89..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-025
-
-Bug-Reported-by:       Tom Bjorkholm <tom.bjorkholm@ericsson.com>
-Bug-Reference-ID:      <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html
-
-Bug-Description:
-
-An off-by-one error in readline's input buffering caused readline to drop
-each 511th character of buffered input (e.g., when pasting a large amount
-of data into a terminal window).
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/input.c   Wed Aug 16 15:15:16 2006
---- lib/readline/input.c       Tue Jul 17 09:24:21 2007
-***************
-*** 134,139 ****
-  
-    *key = ibuffer[pop_index++];
-! 
-    if (pop_index >= ibuffer_len)
-      pop_index = 0;
-  
---- 134,142 ----
-  
-    *key = ibuffer[pop_index++];
-! #if 0
-    if (pop_index >= ibuffer_len)
-+ #else
-+   if (pop_index > ibuffer_len)
-+ #endif
-      pop_index = 0;
-  
-***************
-*** 251,255 ****
-       {
-         k = (*rl_getc_function) (rl_instream);
-!        rl_stuff_char (k);
-         if (k == NEWLINE || k == RETURN)
-           break;
---- 254,259 ----
-       {
-         k = (*rl_getc_function) (rl_instream);
-!        if (rl_stuff_char (k) == 0)
-!          break;                      /* some problem; no more room */
-         if (k == NEWLINE || k == RETURN)
-           break;
-***************
-*** 374,378 ****
---- 378,386 ----
-      }
-    ibuffer[push_index++] = key;
-+ #if 0
-    if (push_index >= ibuffer_len)
-+ #else
-+   if (push_index > ibuffer_len)
-+ #endif
-      push_index = 0;
-  
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 24
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 25
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-026 b/src/patches/bash/bash32-026
deleted file mode 100644 (file)
index ba7de50..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-026
-
-Bug-Reported-by:       Chet Ramey <chet.ramey@case.edu>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-This keeps the Apple linker from attempting to link bash against Apple's
-readline library "replacement" rather than the one shipped with bash.  It
-extends the configure workaround to Mac OS X Leopard (10.5).
-
-As a side effect, the patch updates the copyright date displayed in the
-version string.
-
-You must re-run configure after applying the patch, and before rebuilding
-bash.
-
-Patch:
-
-*** ../bash-3.2-patched/configure.in   2007-03-06 11:07:38.000000000 -0500
---- configure.in       2007-11-23 15:37:41.000000000 -0500
-***************
-*** 519,523 ****
-               # dynamic version
-               case "${host_os}" in
-!              darwin8*)       READLINE_LIB='${READLINE_LIBRARY}' ;;
-               *)              READLINE_LIB=-lreadline ;;
-               esac
---- 519,523 ----
-               # dynamic version
-               case "${host_os}" in
-!              darwin[[89]]*)  READLINE_LIB='${READLINE_LIBRARY}' ;;
-               *)              READLINE_LIB=-lreadline ;;
-               esac
-*** ../bash-3.2-patched/configure      2007-03-24 14:51:22.000000000 -0400
---- configure  2007-11-23 15:46:15.000000000 -0500
-***************
-*** 4872,4876 ****
-               # dynamic version
-               case "${host_os}" in
-!              darwin8*)       READLINE_LIB='${READLINE_LIBRARY}' ;;
-               *)              READLINE_LIB=-lreadline ;;
-               esac
---- 4872,4876 ----
-               # dynamic version
-               case "${host_os}" in
-!              darwin[89]*)    READLINE_LIB='${READLINE_LIBRARY}' ;;
-               *)              READLINE_LIB=-lreadline ;;
-               esac
-*** ../bash-3.2-patched/version.c      2005-05-16 11:58:34.000000000 -0400
---- version.c  2007-11-23 16:03:40.000000000 -0500
-***************
-*** 80,83 ****
-    printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
-    if (extended)
-!     printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n"));
-  }
---- 80,83 ----
-    printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
-    if (extended)
-!     printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n"));
-  }
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 25
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 26
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-027 b/src/patches/bash/bash32-027
deleted file mode 100644 (file)
index 5e110cb..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-027
-
-Bug-Reported-by:       dAniel hAhler <ubuntu@thequod.de>
-Bug-Reference-ID:      <4702ED8A.5000503@thequod.de>
-Bug-Reference-URL:     https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938
-
-Bug-Description:
-
-When updating the display after displaying, for instance, a list of possible
-completions, readline will place the cursor at the wrong position if the
-prompt contains invisible characters and a newline.
-
-Patch:
-
-*** ../bash-3.2.25/lib/readline/display.c      Mon Aug  6 14:26:29 2007
---- lib/readline/display.c     Wed Oct 10 22:43:58 2007
-***************
-*** 1049,1053 ****
-             else
-               tx = nleft;
-!            if (_rl_last_c_pos > tx)
-               {
-                 _rl_backspace (_rl_last_c_pos - tx);  /* XXX */
---- 1049,1053 ----
-             else
-               tx = nleft;
-!            if (tx >= 0 && _rl_last_c_pos > tx)
-               {
-                 _rl_backspace (_rl_last_c_pos - tx);  /* XXX */
-***************
-*** 1205,1209 ****
-  {
-    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-!   int temp, lendiff, wsatend, od, nd;
-    int current_invis_chars;
-    int col_lendiff, col_temp;
---- 1205,1209 ----
-  {
-    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-!   int temp, lendiff, wsatend, od, nd, o_cpos;
-    int current_invis_chars;
-    int col_lendiff, col_temp;
-***************
-*** 1466,1469 ****
---- 1466,1471 ----
-      }
-  
-+   o_cpos = _rl_last_c_pos;
-+ 
-    /* When this function returns, _rl_last_c_pos is correct, and an absolute
-       cursor postion in multibyte mode, but a buffer index when not in a
-***************
-*** 1475,1479 ****
-       invisible characters in the prompt string.  Let's see if setting this when
-       we make sure we're at the end of the drawn prompt string works. */
-!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
-      cpos_adjusted = 1;
-  #endif
---- 1477,1483 ----
-       invisible characters in the prompt string.  Let's see if setting this when
-       we make sure we're at the end of the drawn prompt string works. */
-!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && 
-!       (_rl_last_c_pos > 0 || o_cpos > 0) &&
-!       _rl_last_c_pos == prompt_physical_chars)
-      cpos_adjusted = 1;
-  #endif
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 26
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 27
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-028 b/src/patches/bash/bash32-028
deleted file mode 100644 (file)
index e818294..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-028
-
-Bug-Reported-by:       dAniel hAhler <ubuntu@thequod.de>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-Under some circumstances, readline will incorrectly display a prompt string
-containing invisible characters after the final newline.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400
---- lib/readline/display.c     2007-11-10 17:51:29.000000000 -0500
-***************
-*** 392,396 ****
-        local_prompt = expand_prompt (p, &prompt_visible_length,
-                                      &prompt_last_invisible,
-!                                     (int *)NULL,
-                                      &prompt_physical_chars);
-        c = *t; *t = '\0';
---- 420,424 ----
-        local_prompt = expand_prompt (p, &prompt_visible_length,
-                                      &prompt_last_invisible,
-!                                     &prompt_invis_chars_first_line,
-                                      &prompt_physical_chars);
-        c = *t; *t = '\0';
-***************
-*** 399,403 ****
-        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
-                                                  (int *)NULL,
-!                                                 &prompt_invis_chars_first_line,
-                                                  (int *)NULL);
-        *t = c;
---- 427,431 ----
-        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
-                                                  (int *)NULL,
-!                                                 (int *)NULL,
-                                                  (int *)NULL);
-        *t = c;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 27
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 28
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-029 b/src/patches/bash/bash32-029
deleted file mode 100644 (file)
index 9de2085..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-029
-
-Bug-Reported-by:       Tomas Janousek <tjanouse@redhat.com>
-Bug-Reference-ID:      <20071102104034.GA26893@redhat.com>
-Bug-Reference-URL:     https://bugzilla.redhat.com/show_bug.cgi?id=286861
-
-Bug-Description:
-
-When the bash arithmetic expression evaluator has temporarily turned off
-evalation, such as when parsing a pre- or post-decrement or -increment
-operator, and an error occurs, evaluation is not re-enabled.
-
-Patch:
-
-*** ../bash-3.2-patched/expr.c 2007-08-25 13:47:05.000000000 -0400
---- expr.c     2007-10-18 08:08:44.000000000 -0400
-***************
-*** 287,290 ****
---- 287,292 ----
-      }
-    free (expr_stack[expr_depth]);     /* free the allocated EXPR_CONTEXT */
-+ 
-+   noeval = 0;        /* XXX */
-  }
-  
-***************
-*** 320,323 ****
---- 322,326 ----
-  
-    val = 0;
-+   noeval = 0;
-  
-    FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf));
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 28
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 29
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-030 b/src/patches/bash/bash32-030
deleted file mode 100644 (file)
index 3f12c28..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-030
-
-Bug-Reported-by:       Paul Eggert <eggert@cs.ucla.edu> Andreas Schwab <schwab@suse.de>
-Bug-Reference-ID:      <877il0nu84.fsf_-_@penguin.cs.ucla.edu> <m28x5gparz.fsf@igel.home>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.html
-
-Bug-Description:
-
-If redirections attached to a compound command fail, bash does not set the
-command's exit status correctly.  This only happens when the command is the
-first in a sequential list.
-
-Patch:
-
-*** ../bash-3.2-patched/execute_cmd.c  2007-03-24 14:51:05.000000000 -0400
---- execute_cmd.c      2007-11-05 22:31:14.000000000 -0500
-***************
-*** 615,619 ****
-        redirection_undo_list = (REDIRECT *)NULL;
-        dispose_exec_redirects ();
-!       return (EXECUTION_FAILURE);
-      }
-  
---- 620,624 ----
-        redirection_undo_list = (REDIRECT *)NULL;
-        dispose_exec_redirects ();
-!       return (last_command_exit_value = EXECUTION_FAILURE);
-      }
-
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 29
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 30
-  
-  #endif /* _PATCHLEVEL_H_ */
-
-  
diff --git a/src/patches/bash/bash32-031 b/src/patches/bash/bash32-031
deleted file mode 100644 (file)
index 6c96fb9..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-031
-
-Bug-Reported-by:       Miroslav Lichvar <mlichvar@redhat.com>
-Bug-Reference-ID:      Fri, 02 Nov 2007 14:07:45 +0100
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html
-
-Bug-Description:
-
-In certain cases when outputting characters at the end of the line,
-e.g., when displaying the prompt string, readline positions the cursor
-incorrectly if the prompt string contains invisible characters and the
-text being drawn begins before the last invisible character in the line.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400
---- lib/readline/display.c     2007-11-10 17:51:29.000000000 -0500
-***************
-*** 1566,1574 ****
-         else
-           {
--            /* We have horizontal scrolling and we are not inserting at
--               the end.  We have invisible characters in this line.  This
--               is a dumb update. */
-             _rl_output_some_chars (nfd, temp);
-             _rl_last_c_pos += col_temp;
-             return;
-           }
---- 1619,1632 ----
-         else
-           {
-             _rl_output_some_chars (nfd, temp);
-             _rl_last_c_pos += col_temp;
-+            /* If nfd begins before any invisible characters in the prompt,
-+               adjust _rl_last_c_pos to account for wrap_offset and set
-+               cpos_adjusted to let the caller know. */
-+            if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
-+              {
-+                _rl_last_c_pos -= wrap_offset;
-+                cpos_adjusted = 1;
-+              }
-             return;
-           }
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 30
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 31
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-032 b/src/patches/bash/bash32-032
deleted file mode 100644 (file)
index 5e53e29..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-032
-
-Bug-Reported-by:       Uwe Doering <gemini@geminix.org>
-Bug-Reference-ID:      <46F3DD72.2090801@geminix.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html
-
-Bug-Description:
-
-There is an off-by-one error in the code that buffers characters received
-very quickly in succession, causing characters to be dropped.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/input.c   2007-08-25 13:47:10.000000000 -0400
---- lib/readline/input.c       2007-10-12 22:55:25.000000000 -0400
-***************
-*** 155,159 ****
-        pop_index--;
-        if (pop_index < 0)
-!      pop_index = ibuffer_len - 1;
-        ibuffer[pop_index] = key;
-        return (1);
---- 155,159 ----
-        pop_index--;
-        if (pop_index < 0)
-!      pop_index = ibuffer_len;
-        ibuffer[pop_index] = key;
-        return (1);
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 31
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 32
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-033 b/src/patches/bash/bash32-033
deleted file mode 100644 (file)
index 0d69810..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-033
-
-Bug-Reported-by:       Christophe Martin <schplurtz@free.fr>
-Bug-Reference-ID:      <465ABA4A.3030805@free.fr>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html
-
-Bug-Description:
-
-References made within a function to an uninitialized local array variable
-using the [*] subscript in a double-quoted string  can result in spurious
-ASCII 127 characters in the expanded value.
-
-Patch:
-
-*** ../bash-3.2-patched/arrayfunc.c    2007-08-25 13:47:05.000000000 -0400
---- arrayfunc.c        2007-05-31 11:55:46.000000000 -0400
-***************
-*** 723,727 ****
-      {
-        if (rtype)
-!      *rtype = 1;
-        if (allow_all == 0)
-       {
---- 723,727 ----
-      {
-        if (rtype)
-!      *rtype = (t[0] == '*') ? 1 : 2;
-        if (allow_all == 0)
-       {
-*** ../bash-3.2-patched/subst.c        2007-08-25 13:47:08.000000000 -0400
---- subst.c    2007-11-14 15:43:00.000000000 -0500
-***************
-*** 4908,4915 ****
-    intmax_t arg_index;
-    SHELL_VAR *var;
-!   int atype;
-  
-    ret = 0;
-    temp = 0;
-  
-    /* Handle multiple digit arguments, as in ${11}. */  
---- 4973,4981 ----
-    intmax_t arg_index;
-    SHELL_VAR *var;
-!   int atype, rflags;
-  
-    ret = 0;
-    temp = 0;
-+   rflags = 0;
-  
-    /* Handle multiple digit arguments, as in ${11}. */  
-***************
-*** 4944,4947 ****
---- 5010,5015 ----
-                 ? quote_string (temp)
-                 : quote_escapes (temp);
-+       else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
-+      rflags |= W_HASQUOTEDNULL;
-      }
-  #endif
-***************
-*** 4971,4974 ****
---- 5039,5043 ----
-        ret = alloc_word_desc ();
-        ret->word = temp;
-+       ret->flags |= rflags;
-      }
-    return ret;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 32
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 33
-  
-  #endif /* _PATCHLEVEL_H_ */
-
diff --git a/src/patches/bash/bash32-034 b/src/patches/bash/bash32-034
deleted file mode 100644 (file)
index 4f08162..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-034
-
-Bug-Reported-by:       Ian Campbell <ian.campbell@xensource.com>
-Bug-Reference-ID:      <EXCHPAFExU3l5bhn1ow00001dfe@rpc.xensource.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-10/msg00060.html
-
-Bug-Description:
-
-The bash getcwd replacement will write past the end of allocated memory
-when it allocates the buffer itself if it uses the buffer size passed as
-an argument, and that size is less than the length of the pathname.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/sh/getcwd.c        2004-07-21 17:15:19.000000000 -0400
---- lib/sh/getcwd.c    2007-12-31 19:26:36.000000000 -0500
-***************
-*** 252,268 ****
-    {
-      size_t len = pathbuf + pathsize - pathp;
-      if (buf == NULL)
-        {
-!      if (len < (size_t) size)
-!        len = size;
-!      buf = (char *) malloc (len);
-       if (buf == NULL)
-         goto lose2;
-        }
-!     else if ((size_t) size < len)
-!       {
-!      errno = ERANGE;
-!      goto lose2;
-!       }
-      (void) memcpy((PTR_T) buf, (PTR_T) pathp, len);
-    }
---- 287,305 ----
-    {
-      size_t len = pathbuf + pathsize - pathp;
-+     if (buf == NULL && size <= 0)
-+       size = len;
-+ 
-+     if ((size_t) size < len)
-+       {
-+      errno = ERANGE;
-+      goto lose2;
-+       }
-      if (buf == NULL)
-        {
-!      buf = (char *) malloc (size);
-       if (buf == NULL)
-         goto lose2;
-        }
-! 
-      (void) memcpy((PTR_T) buf, (PTR_T) pathp, len);
-    }
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 33
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 34
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-035 b/src/patches/bash/bash32-035
deleted file mode 100644 (file)
index 55506ba..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-035
-
-Bug-Reported-by:       Ingo Molnar <mingo@elte.hu>
-Bug-Reference-ID:      <20071205202901.GA25202@elte.hu>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-12/msg00014.html
-
-Bug-Description:
-
-Bash incorrectly puts the second and subsequent children spawned by a
-shell forked to run a command substitution in the wrong process group.
-
-Patch:
-
-*** ../bash-3.2-patched/subst.c        2007-12-13 22:31:21.000000000 -0500
---- subst.c    2008-01-17 22:48:15.000000000 -0500
-***************
-*** 4621,4627 ****
-  
-  #if defined (JOB_CONTROL)
-    set_sigchld_handler ();
-    stop_making_children ();
-!   pipeline_pgrp = old_pipeline_pgrp;
-  #else
-    stop_making_children ();
---- 4721,4728 ----
-  
-  #if defined (JOB_CONTROL)
-    set_sigchld_handler ();
-    stop_making_children ();
-!   if (pid != 0)
-!     pipeline_pgrp = old_pipeline_pgrp;
-  #else
-    stop_making_children ();
-*** ../bash-3.2-patched/jobs.c 2007-08-25 13:46:59.000000000 -0400
---- jobs.c     2007-12-08 16:47:43.000000000 -0500
-***************
-*** 251,254 ****
---- 251,255 ----
-  static int set_job_status_and_cleanup __P((int));
-  
-+ static WAIT job_signal_status __P((int));
-  static WAIT raw_job_exit_status __P((int));
-  
-***************
-*** 2220,2223 ****
---- 2238,2261 ----
-  }
-  
-+ static WAIT
-+ job_signal_status (job)
-+      int job;
-+ {
-+   register PROCESS *p;
-+   WAIT s;
-+ 
-+   p = jobs[job]->pipe;
-+   do
-+     {
-+       s = p->status;
-+       if (WIFSIGNALED(s) || WIFSTOPPED(s))
-+      break;
-+       p = p->next;
-+     }
-+   while (p != jobs[job]->pipe);
-+ 
-+   return s;
-+ }
-+   
-  /* Return the exit status of the last process in the pipeline for job JOB.
-     This is the exit status of the entire job. */
-***************
-*** 2302,2310 ****
-       received, only if one of the jobs run is killed via SIGINT.  If
-       job control is not set, the job will be run in the same pgrp as
-!      the shell, and the shell will see any signals the job gets. */
-  
-    /* This is possibly a race condition -- should it go in stop_pipeline? */
-    wait_sigint_received = 0;
-!   if (job_control == 0)
-      {
-        old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
---- 2343,2354 ----
-       received, only if one of the jobs run is killed via SIGINT.  If
-       job control is not set, the job will be run in the same pgrp as
-!      the shell, and the shell will see any signals the job gets.  In
-!      fact, we want this set every time the waiting shell and the waited-
-!      for process are in the same process group, including command
-!      substitution. */
-  
-    /* This is possibly a race condition -- should it go in stop_pipeline? */
-    wait_sigint_received = 0;
-!   if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
-      {
-        old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
-***************
-*** 2452,2464 ****
-            the last process in the pipeline.  If no process exits due to a
-            signal, S is left as the status of the last job in the pipeline. */
-!        p = jobs[job]->pipe;
-!        do
-!          {
-!            s = p->status;
-!            if (WIFSIGNALED(s) || WIFSTOPPED(s))
-!              break;
-!            p = p->next;
-!          }
-!        while (p != jobs[job]->pipe);
-  
-         if (WIFSIGNALED (s) || WIFSTOPPED (s))
---- 2496,2500 ----
-            the last process in the pipeline.  If no process exits due to a
-            signal, S is left as the status of the last job in the pipeline. */
-!        s = job_signal_status (job);
-  
-         if (WIFSIGNALED (s) || WIFSTOPPED (s))
-***************
-*** 2494,2497 ****
---- 2530,2551 ----
-           }
-       }
-+       else if ((subshell_environment & SUBSHELL_COMSUB) && wait_sigint_received)
-+      {
-+        /* If waiting for a job in a subshell started to do command
-+           substitution, simulate getting and being killed by the SIGINT to
-+           pass the status back to our parent. */
-+        s = job_signal_status (job);
-+      
-+        if (WIFSIGNALED (s) && WTERMSIG (s) == SIGINT && signal_is_trapped (SIGINT) == 0)
-+          {
-+            UNBLOCK_CHILD (oset);
-+            restore_sigint_handler ();
-+            old_sigint_handler = set_signal_handler (SIGINT, SIG_DFL);
-+            if (old_sigint_handler == SIG_IGN)
-+              restore_sigint_handler ();
-+            else
-+              kill (getpid (), SIGINT);
-+          }
-+      }
-  
-        /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 34
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 35
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-036 b/src/patches/bash/bash32-036
deleted file mode 100644 (file)
index ef22e60..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-036
-
-Bug-Reported-by:       Len Lattanzi <llattanzi@apple.com>
-Bug-Reference-ID:      <87493131-7AEC-4301-A684-E6CC6D06E3E1@apple.com>
-Bug-Reference-URL:
-
-Bug-Description:
-
-When initializing a subshell, bash did not reset a sentinel keeping track
-of the number of command substitutions, leading to an infinite loop if
-an error was encountered in the subshell.
-
-Patch:
-
-*** ../bash-3.2-patched/execute_cmd.c  2007-12-13 22:31:14.000000000 -0500
---- execute_cmd.c      2007-12-20 08:52:34.000000000 -0500
-***************
-*** 3881,3884 ****
---- 3916,3921 ----
-  
-    clear_unwind_protect_list (0);
-+   /* XXX -- are there other things we should be resetting here? */
-+   parse_and_execute_level = 0;               /* nothing left to restore it */
-  
-    /* We're no longer inside a shell function. */
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 35
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 36
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-037 b/src/patches/bash/bash32-037
deleted file mode 100644 (file)
index 376bd93..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-037
-
-Bug-Reported-by:       jared r r spiegel <jrrs@iorek.ice-nine.org>
-Bug-Reference-ID:      <200801152201.m0FM1lDp021260@iorek.ice-nine.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-01/msg00049.html
-
-Bug-Description:
-
-Bash inappropriately evaluates command substitutions while expanding
-directory names as part of command substitution.
-
-Patch:
-
-*** ../bash-3.2-patched/subst.c        2007-12-13 22:31:21.000000000 -0500
---- subst.c    2008-01-17 22:48:15.000000000 -0500
-***************
-*** 2815,2821 ****
-     to jump_to_top_level here so we don't endlessly loop. */
-  WORD_LIST *
-! expand_prompt_string (string, quoted)
-       char *string;
-       int quoted;
-  {
-    WORD_LIST *value;
---- 2895,2902 ----
-     to jump_to_top_level here so we don't endlessly loop. */
-  WORD_LIST *
-! expand_prompt_string (string, quoted, wflags)
-       char *string;
-       int quoted;
-+      int wflags;
-  {
-    WORD_LIST *value;
-***************
-*** 2825,2829 ****
-      return ((WORD_LIST *)NULL);
-  
-!   td.flags = 0;
-    td.word = savestring (string);
-  
---- 2906,2910 ----
-      return ((WORD_LIST *)NULL);
-  
-!   td.flags = wflags;
-    td.word = savestring (string);
-  
-*** ../bash-3.2-patched/subst.h        2007-03-24 14:51:05.000000000 -0400
---- subst.h    2008-01-17 22:46:08.000000000 -0500
-***************
-*** 136,140 ****
-  
-  /* Expand a prompt string. */
-! extern WORD_LIST *expand_prompt_string __P((char *, int));
-  
-  /* Expand STRING just as if you were expanding a word.  This also returns
---- 137,141 ----
-  
-  /* Expand a prompt string. */
-! extern WORD_LIST *expand_prompt_string __P((char *, int, int));
-  
-  /* Expand STRING just as if you were expanding a word.  This also returns
-*** ../bash-3.2-patched/parse.y        2007-08-25 13:47:06.000000000 -0400
---- parse.y    2008-01-17 22:46:30.000000000 -0500
-***************
-*** 4367,4371 ****
-      {
-        last_exit_value = last_command_exit_value;
-!       list = expand_prompt_string (result, Q_DOUBLE_QUOTES);
-        free (result);
-        result = string_list (list);
---- 4367,4371 ----
-      {
-        last_exit_value = last_command_exit_value;
-!       list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0);
-        free (result);
-        result = string_list (list);
-*** ../bash-3.2-patched/bashline.c     2006-07-29 16:39:30.000000000 -0400
---- bashline.c 2008-02-17 12:53:42.000000000 -0500
-***************
-*** 2358,2362 ****
-      {
-        new_dirname = savestring (local_dirname);
-!       wl = expand_prompt_string (new_dirname, 0);    /* does the right thing */
-        if (wl)
-       {
---- 2376,2380 ----
-      {
-        new_dirname = savestring (local_dirname);
-!       wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB);        /* does the right thing */
-        if (wl)
-       {
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 36
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 37
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-038 b/src/patches/bash/bash32-038
deleted file mode 100644 (file)
index 842b1b5..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-038
-
-Bug-Reported-by:       Wojciech Puchar <wojtek@wojtek.tensor.gdynia.pl>
-Bug-Reference-ID:      <200803131141.m2DBf9vo001136@wojtek.tensor.gdynia.pl>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-03/msg00029.html
-
-Bug-Description:
-
-When reading input lines into a single variable using the `read' builtin,
-bash did not free the memory it read after assigining it to the named
-variable, causing a memory leak noticable when reading large amounts of
-data.
-
-
-Patch:
-
-*** ../bash-3.2-patched/builtins/read.def      2007-08-25 13:47:07.000000000 -0400
---- builtins/read.def  2008-03-07 12:55:47.000000000 -0500
-***************
-*** 135,139 ****
-    char c;
-    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
-!   char *e, *t, *t1, *ps2;
-    struct stat tsb;
-    SHELL_VAR *var;
---- 152,156 ----
-    char c;
-    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
-!   char *e, *t, *t1, *ps2, *tofree;
-    struct stat tsb;
-    SHELL_VAR *var;
-***************
-*** 675,678 ****
---- 728,732 ----
-    /* Check whether or not the number of fields is exactly the same as the
-       number of variables. */
-+   tofree = NULL;
-    if (*input_string)
-      {
-***************
-*** 680,684 ****
-        t = get_word_from_string (&input_string, ifs_chars, &e);
-        if (*input_string == 0)
-!      input_string = t;
-        else
-       input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape);
---- 734,738 ----
-        t = get_word_from_string (&input_string, ifs_chars, &e);
-        if (*input_string == 0)
-!      tofree = input_string = t;
-        else
-       input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape);
-***************
-*** 695,698 ****
---- 749,754 ----
-      var = bind_read_variable (list->word->word, input_string);
-    stupidly_hack_special_variables (list->word->word);
-+   FREE (tofree);
-+ 
-    if (var)
-      VUNSETATTR (var, att_invisible);
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 37
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 38
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-039 b/src/patches/bash/bash32-039
deleted file mode 100644 (file)
index c225a5a..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-039
-
-Bug-Reported-by:       rew@erebor.com
-Bug-Reference-ID:      <20070119065603.546D011E9C@kansas.erebor.com>
-Bug-Reference-URL:     
-
-Bug-Description:
-
-Bash-3.2 changed the behavior of the [[ command's `=~' operator when the
-right-hand side was quoted:  it matched the quoted portions as strings.
-This patch introduces a new shell option: compat31.  When enabled, it
-restores the bash-3.1 behavior with respect to evaluating quoted arguments
-to the =~ operator.
-
-Patch:
-
-*** ../bash-3.2-patched/execute_cmd.c  2007-12-14 21:12:39.000000000 -0500
---- execute_cmd.c      2008-02-22 21:20:40.000000000 -0500
-***************
-*** 2547,2551 ****
-        if (arg1 == 0)
-       arg1 = nullstr;
-!       arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0));
-        if (arg2 == 0)
-       arg2 = nullstr;
---- 2552,2557 ----
-        if (arg1 == 0)
-       arg1 = nullstr;
-!       arg2 = cond_expand_word (cond->right->op,
-!                             (rmatch && shell_compatibility_level > 31) ? 2 : (patmatch ? 1 : 0));
-        if (arg2 == 0)
-       arg2 = nullstr;
-*** ../bash-3.2-patched/shell.h        2003-06-01 15:04:36.000000000 -0400
---- shell.h    2008-02-22 21:16:48.000000000 -0500
-***************
-*** 90,93 ****
---- 90,94 ----
-  extern int interactive, interactive_shell;
-  extern int startup_state;
-+ extern int shell_compatibility_level;
-  
-  /* Structure to pass around that holds a bitmap of file descriptors
-*** ../bash-3.2-patched/version.c      2007-12-14 21:12:29.000000000 -0500
---- version.c  2008-04-10 08:22:22.000000000 -0400
-***************
-*** 44,47 ****
---- 44,50 ----
-  const char *sccs_version = SCCSVERSION;
-  
-+ /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */
-+ int shell_compatibility_level = 32;
-+ 
-  /* Functions for getting, setting, and displaying the shell version. */
-  
-*** ../bash-3.2-patched/builtins/shopt.def     2005-02-19 17:25:03.000000000 -0500
---- builtins/shopt.def 2008-04-10 08:13:32.000000000 -0400
-***************
-*** 102,105 ****
---- 102,107 ----
-  static int set_shellopts_after_change __P((int));
-  
-+ static int set_compatibility_level __P((int));
-+ 
-  #if defined (RESTRICTED_SHELL)
-  static int set_restricted_shell __P((int));
-***************
-*** 107,110 ****
---- 109,113 ----
-  
-  static int shopt_login_shell;
-+ static int shopt_compat31;
-  
-  typedef int shopt_set_func_t __P((int));
-***************
-*** 122,125 ****
---- 125,129 ----
-    { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL },
-  #endif
-+   { "compat31", &shopt_compat31, set_compatibility_level },
-    { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL },
-    { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL },
-***************
-*** 460,463 ****
---- 464,479 ----
-  }
-  
-+ static int
-+ set_compatibility_level (mode)
-+      int mode;
-+ {
-+   /* Need to change logic here as we add more compatibility levels */
-+   if (shopt_compat31)
-+     shell_compatibility_level = 31;
-+   else
-+     shell_compatibility_level = 32;
-+   return 0;
-+ }
-+ 
-  #if defined (RESTRICTED_SHELL)
-  /* Don't allow the value of restricted_shell to be modified. */
-*** ../bash-3.2-patched/doc/bash.1     2006-09-28 10:26:05.000000000 -0400
---- doc/bash.1 2008-04-25 12:32:49.000000000 -0400
-***************
-*** 7978,7981 ****
---- 8200,8209 ----
-  easy re-editing of multi-line commands.
-  .TP 8
-+ .B compat31
-+ If set,
-+ .B bash
-+ changes its behavior to that of version 3.1 with respect to quoted
-+ arguments to the conditional command's =~ operator.
-+ .TP 8
-  .B dotglob
-  If set, 
-*** ../bash-20080214/doc/bashref.texi  2008-02-08 21:28:35.000000000 -0500
---- doc/bashref.texi   2008-02-22 21:44:51.000000000 -0500
-***************
-*** 4053,4056 ****
---- 4061,4069 ----
-  easy re-editing of multi-line commands.
-  
-+ @item compat31
-+ If set, Bash
-+ changes its behavior to that of version 3.1 with respect to quoted
-+ arguments to the conditional command's =~ operator.
-+ 
-  @item dotglob
-  If set, Bash includes filenames beginning with a `.' in
-*** ../bash-3.2-patched/tests/shopt.right      2005-02-19 17:46:09.000000000 -0500
---- tests/shopt.right  2008-04-28 09:13:07.000000000 -0400
-***************
-*** 7,10 ****
---- 7,11 ----
-  shopt -u checkwinsize
-  shopt -s cmdhist
-+ shopt -u compat31
-  shopt -u dotglob
-  shopt -u execfail
-***************
-*** 54,57 ****
---- 55,59 ----
-  shopt -u checkhash
-  shopt -u checkwinsize
-+ shopt -u compat31
-  shopt -u dotglob
-  shopt -u execfail
-***************
-*** 78,81 ****
---- 80,84 ----
-  checkhash            off
-  checkwinsize         off
-+ compat31             off
-  dotglob              off
-  execfail             off
-
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 38
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 39
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-040 b/src/patches/bash/bash32-040
deleted file mode 100644 (file)
index 50b85bb..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-040
-
-Bug-Reported-by:       John McCabe-Dansted
-Bug-Reference-ID:
-Bug-Reference-URL:     https://bugs.launchpad.net/ubuntu/+source/bash/+bug/202885
-
-Bug-Description:
-
-When using the `set' builtin to list all shell variables, the shell uses
-the wrong variable when computing the length of a variable's value.
-
-Patch:
-
-*** ../bash-3.2-patched/array.c        2007-03-24 14:51:03.000000000 -0400
---- array.c    2008-08-17 13:07:04.000000000 -0400
-***************
-*** 684,688 ****
-               valstr = element_value (ae) ? sh_double_quote (element_value(ae))
-                                           : (char *)NULL;
-!              elen = STRLEN (indstr) + 8 + STRLEN (valstr);
-               RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize);
-  
---- 809,813 ----
-               valstr = element_value (ae) ? sh_double_quote (element_value(ae))
-                                           : (char *)NULL;
-!              elen = STRLEN (is) + 8 + STRLEN (valstr);
-               RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize);
-  
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 39
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 40
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-041 b/src/patches/bash/bash32-041
deleted file mode 100644 (file)
index 3c05c04..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-041
-
-Bug-Reported-by:       Dan Jacobson <jidanni@jidanni.org>
-Bug-Reference-ID:      <873arjs11h.fsf@jidanni.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-02/msg00049.html
-
-Bug-Description:
-
-Bash saved and restored the value of `set -o history' while sourcing files,
-preventing users from turning off history with `set +o history' in .bashrc.
-
-Patch:
-
-*** ../bash-3.2-patched/bashhist.c     2005-12-26 13:31:16.000000000 -0500
---- bashhist.c 2008-08-17 13:07:40.000000000 -0400
-***************
-*** 81,84 ****
---- 81,85 ----
-     becomes zero when we read lines from a file, for example. */
-  int remember_on_history = 1;
-+ int enable_history_list = 1; /* value for `set -o history' */
-  
-  /* The number of lines that Bash has added to this history session.  The
-***************
-*** 235,239 ****
-    history_expansion_inhibited = 1;
-  #endif
-!   remember_on_history = interact != 0;
-    history_inhibit_expansion_function = bash_history_inhibit_expansion;
-  }
---- 236,240 ----
-    history_expansion_inhibited = 1;
-  #endif
-!   remember_on_history = enable_history_list = interact != 0;
-    history_inhibit_expansion_function = bash_history_inhibit_expansion;
-  }
-*** ../bash-3.2-patched/builtins/set.def       2006-07-27 09:41:43.000000000 -0400
---- builtins/set.def   2008-08-14 16:33:41.000000000 -0400
-***************
-*** 190,194 ****
-  #endif /* BANG_HISTORY */
-  #if defined (HISTORY)
-!   { "history",   '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL },
-  #endif
-    { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
---- 198,202 ----
-  #endif /* BANG_HISTORY */
-  #if defined (HISTORY)
-!   { "history",   '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL },
-  #endif
-    { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
-***************
-*** 382,385 ****
---- 390,394 ----
-    if (on_or_off == FLAG_ON)
-      {
-+       enable_history_list = 1;
-        bash_history_enable ();
-        if (history_lines_this_session == 0)
-***************
-*** 387,392 ****
-      }
-    else
-!     bash_history_disable ();
-!   return (1 - remember_on_history);
-  }
-  #endif
---- 396,404 ----
-      }
-    else
-!     {
-!       enable_history_list = 0;
-!       bash_history_disable ();
-!     }
-!   return (1 - enable_history_list);
-  }
-  #endif
-***************
-*** 566,570 ****
-  {
-  #if defined (HISTORY)
-!   remember_on_history = 1;
-  #endif
-    ignoreeof = 0;
---- 578,582 ----
-  {
-  #if defined (HISTORY)
-!   remember_on_history = enable_history_list = 1;
-  #endif
-    ignoreeof = 0;
-*** ../bash-3.2-patched/builtins/evalstring.c  2006-07-28 15:12:16.000000000 -0400
---- builtins/evalstring.c      2008-11-10 21:17:16.000000000 -0500
-***************
-*** 68,71 ****
---- 68,79 ----
-  static int cat_file __P((REDIRECT *));
-  
-+ #if defined (HISTORY)
-+ static void
-+ set_history_remembering ()
-+ {
-+   remember_on_history = enable_history_list;
-+ }
-+ #endif
-+ 
-  /* How to force parse_and_execute () to clean up after itself. */
-  void
-***************
-*** 116,120 ****
-  
-  #if defined (HISTORY)
-!   unwind_protect_int (remember_on_history);  /* can be used in scripts */
-  #  if defined (BANG_HISTORY)
-    if (interactive_shell)
---- 124,131 ----
-  
-  #if defined (HISTORY)
-!   if (parse_and_execute_level == 0)
-!     add_unwind_protect (set_history_remembering, (char *)NULL);
-!   else
-!     unwind_protect_int (remember_on_history);        /* can be used in scripts */
-  #  if defined (BANG_HISTORY)
-    if (interactive_shell)
-*** ../bash-3.2-patched/bashhist.h     2005-07-01 15:44:41.000000000 -0400
---- bashhist.h 2008-08-17 12:51:07.000000000 -0400
-***************
-*** 32,35 ****
---- 32,38 ----
-  
-  extern int remember_on_history;
-+ extern int enable_history_list;              /* value for `set -o history' */
-+ extern int literal_history;          /* controlled by `shopt lithist' */
-+ extern int force_append_history;
-  extern int history_lines_this_session;
-  extern int history_lines_in_file;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 40
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 41
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-042 b/src/patches/bash/bash32-042
deleted file mode 100644 (file)
index 4c9f4d6..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-042
-
-Bug-Reported-by:       Archimerged Ark Submedes <archimerged@gmail.com>
-Bug-Reference-ID:      <5ba4bef00804182116g65ff71e0qdffcf672f205e708@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-04/msg00041.html
-
-Bug-Description:
-
-An operator precedence error prevented the bash arithmetic evaluator from
-parsing conditional commands correctly.
-
-Patch:
-
-*** ../bash-3.2-patched/expr.c 2007-12-13 22:30:43.000000000 -0500
---- expr.c     2008-08-17 13:09:59.000000000 -0400
-***************
-*** 521,525 ****
-         noeval++;
-       }
-!       val2 = explor ();
-        if (set_noeval)
-       noeval--;
---- 521,526 ----
-         noeval++;
-       }
-! 
-!       val2 = expcond ();
-        if (set_noeval)
-       noeval--;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 41
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 42
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-043 b/src/patches/bash/bash32-043
deleted file mode 100644 (file)
index 5a51843..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-043
-
-Bug-Reported-by:       Morita Sho <morita-pub-en-debian@inz.sakura.ne.jp>
-Bug-Reference-ID:
-Bug-Reference-URL:     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096
-
-Bug-Description:
-
-Side effects caused by setting function-local versions of variables bash
-handles specially persisted after the function returned.
-
-Patch:
-
-*** ../bash-3.2-patched/variables.c    2007-08-25 13:47:05.000000000 -0400
---- variables.c        2008-11-09 17:47:31.000000000 -0500
-***************
-*** 3459,3465 ****
-       var->attributes &= ~(att_tempvar|att_propagate);
-        else
-!         shell_variables->flags |= VC_HASTMPVAR;
-        v->attributes |= var->attributes;
-      }
-  
-    dispose_variable (var);
---- 3771,3779 ----
-       var->attributes &= ~(att_tempvar|att_propagate);
-        else
-!      shell_variables->flags |= VC_HASTMPVAR;
-        v->attributes |= var->attributes;
-      }
-+   else
-+     stupidly_hack_special_variables (var->name);     /* XXX */
-  
-    dispose_variable (var);
-***************
-*** 3548,3551 ****
---- 3862,3867 ----
-        v->attributes |= var->attributes;
-      }
-+   else
-+     stupidly_hack_special_variables (var->name);     /* XXX */
-  
-    dispose_variable (var);
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 42
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 43
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-044 b/src/patches/bash/bash32-044
deleted file mode 100644 (file)
index 3e7a392..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-044
-
-Bug-Reported-by:       slinkp <stuff@slinkp.com>
-Bug-Reference-ID:      <da52a26a-9f38-4861-a918-14d3482b539d@c65g2000hsa.googlegroups.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html
-
-Bug-Description:
-
-The presence of invisible characters in a prompt longer than the screenwidth
-with invisible characters on the first and last prompt lines caused readline
-to place the cursor in the wrong physical location.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/display.c 2007-12-14 21:12:40.000000000 -0500
---- lib/readline/display.c     2008-10-23 09:39:46.000000000 -0400
-***************
-*** 911,914 ****
---- 944,951 ----
-            OFFSET (which has already been calculated above).  */
-  
-+ #define INVIS_FIRST()        (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset)
-+ #define WRAP_OFFSET(line, offset)  ((line == 0) \
-+                                      ? (offset ? INVIS_FIRST() : 0) \
-+                                      : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0))
-  #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
-  #define VIS_LLEN(l)  ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))
-***************
-*** 945,949 ****
-                 _rl_last_c_pos > wrap_offset &&
-                 o_cpos < prompt_last_invisible)
-!              _rl_last_c_pos -= wrap_offset;
-                 
-             /* If this is the line with the prompt, we might need to
---- 982,992 ----
-                 _rl_last_c_pos > wrap_offset &&
-                 o_cpos < prompt_last_invisible)
-!              _rl_last_c_pos -= prompt_invis_chars_first_line;        /* XXX - was wrap_offset */
-!            else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth &&
-!                      (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
-!                      cpos_adjusted == 0 &&
-!                      _rl_last_c_pos != o_cpos &&
-!                      _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line))
-!              _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line);
-                 
-             /* If this is the line with the prompt, we might need to
-***************
-*** 1205,1209 ****
-  {
-    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-!   int temp, lendiff, wsatend, od, nd, o_cpos;
-    int current_invis_chars;
-    int col_lendiff, col_temp;
---- 1264,1268 ----
-  {
-    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-!   int temp, lendiff, wsatend, od, nd, twidth, o_cpos;
-    int current_invis_chars;
-    int col_lendiff, col_temp;
-***************
-*** 1221,1225 ****
-      temp = _rl_last_c_pos;
-    else
-!     temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
-    if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
-       && _rl_last_v_pos == current_line - 1)
---- 1280,1284 ----
-      temp = _rl_last_c_pos;
-    else
-!     temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset);
-    if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
-       && _rl_last_v_pos == current_line - 1)
-***************
-*** 1587,1599 ****
-           {
-             _rl_output_some_chars (nfd + lendiff, temp - lendiff);
-- #if 1
-            /* XXX -- this bears closer inspection.  Fixes a redisplay bug
-               reported against bash-3.0-alpha by Andreas Schwab involving
-               multibyte characters and prompt strings with invisible
-               characters, but was previously disabled. */
-!            _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
-! #else
-!            _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff);
-! #endif
-           }
-       }
---- 1648,1660 ----
-           {
-             _rl_output_some_chars (nfd + lendiff, temp - lendiff);
-            /* XXX -- this bears closer inspection.  Fixes a redisplay bug
-               reported against bash-3.0-alpha by Andreas Schwab involving
-               multibyte characters and prompt strings with invisible
-               characters, but was previously disabled. */
-!            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-!              twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
-!            else
-!              twidth = temp - lendiff;
-!            _rl_last_c_pos += twidth;
-           }
-       }
-***************
-*** 1789,1793 ****
-    int cpos, dpos;            /* current and desired cursor positions */
-  
-!   woff = W_OFFSET (_rl_last_v_pos, wrap_offset);
-    cpos = _rl_last_c_pos;
-  #if defined (HANDLE_MULTIBYTE)
---- 1850,1854 ----
-    int cpos, dpos;            /* current and desired cursor positions */
-  
-!   woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
-    cpos = _rl_last_c_pos;
-  #if defined (HANDLE_MULTIBYTE)
-***************
-*** 1803,1807 ****
-        prompt string, since they're both buffer indices and DPOS is a
-        desired display position. */
-!       if (new > prompt_last_invisible)               /* XXX - don't use woff here */
-       {
-         dpos -= woff;
---- 1864,1872 ----
-        prompt string, since they're both buffer indices and DPOS is a
-        desired display position. */
-!       if ((new > prompt_last_invisible) ||           /* XXX - don't use woff here */
-!        (prompt_physical_chars > _rl_screenwidth &&
-!         _rl_last_v_pos == prompt_last_screen_line &&
-!         wrap_offset != woff &&
-!         new > (prompt_last_invisible-_rl_screenwidth-wrap_offset)))
-       {
-         dpos -= woff;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 43
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 44
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-045 b/src/patches/bash/bash32-045
deleted file mode 100644 (file)
index 68b91ff..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-045
-
-Bug-Reported-by:       Roman Rakus <rrakus@redhat.com>
-Bug-Reference-ID:      <4864B4A0.1060402@redhat.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-06/msg00098.html
-
-Bug-Description:
-
-When short-circuiting execution due to the `break' or `continue' builtins,
-bash did not preserve the value of $?.
-
-Patch:
-
-*** ../bash-3.2-patched/execute_cmd.c  2008-04-28 22:00:24.000000000 -0400
---- execute_cmd.c      2008-10-18 14:35:03.000000000 -0400
-***************
-*** 502,507 ****
---- 514,526 ----
-    volatile int save_line_number;
-  
-+ #if 0
-    if (command == 0 || breaking || continuing || read_but_dont_execute)
-      return (EXECUTION_SUCCESS);
-+ #else
-+   if (breaking || continuing)
-+     return (last_command_exit_value);
-+   if (command == 0 || read_but_dont_execute)
-+     return (EXECUTION_SUCCESS);
-+ #endif
-  
-    QUIT;
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 44
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 45
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-046 b/src/patches/bash/bash32-046
deleted file mode 100644 (file)
index 78aaf01..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-046
-
-Bug-Reported-by:       Wang Xin <wxinee@gmail.com>
-Bug-Reference-ID:      <9a73e1570807062042ide16698m10e1b18036c95592@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-07/msg00014.html
-
-Bug-Description:
-
-Bash did not compute the length of multibyte characters correctly when
-performing array element length references (e.g., ${#var[subscript]}).
-
-Patch:
-
-*** /usr/src/local/bash/bash-3.2-patched/subst.c       2008-04-28 22:00:20.000000000 -0400
---- subst.c    2008-11-10 22:02:38.000000000 -0500
-***************
-*** 4813,4817 ****
-      t = (ind == 0) ? value_cell (var) : (char *)NULL;
-  
-!   len = STRLEN (t);
-    return (len);
-  }
---- 4813,4817 ----
-      t = (ind == 0) ? value_cell (var) : (char *)NULL;
-  
-!   len = MB_STRLEN (t);
-    return (len);
-  }
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 45
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 46
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-047 b/src/patches/bash/bash32-047
deleted file mode 100644 (file)
index b8272b1..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-047
-
-Bug-Reported-by:       Roman Rakus <rrakus@redhat.com>
-Bug-Reference-ID:      <48A89EBC.906@redhat.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-08/msg00026.html
-
-Bug-Description:
-
-When using the `.' (source) builtin, under certain circumstances bash was
-too careful in discarding state to preserve internal consistency.  One
-effect was that assignments to readonly variables would cause entire scripts
-to be aborted instead of execution of the offending command.  This behavior
-was introduced by bash-3.2 patch 20.
-
-Patch:
-
-*** /usr/src/local/chet/src/bash/bash-3.2-patched/subst.c      2008-04-29 21:24:55.000000000 -0400
---- subst.c    2008-11-13 17:44:25.000000000 -0500
-***************
-*** 138,142 ****
-  extern int last_command_exit_value, last_command_exit_signal;
-  extern int subshell_environment;
-! extern int subshell_level;
-  extern int eof_encountered;
-  extern int return_catch_flag, return_catch_value;
---- 138,142 ----
-  extern int last_command_exit_value, last_command_exit_signal;
-  extern int subshell_environment;
-! extern int subshell_level, parse_and_execute_level;
-  extern int eof_encountered;
-  extern int return_catch_flag, return_catch_value;
-***************
-*** 7673,7677 ****
-    expanding_redir = 0;
-  
-!   top_level_cleanup ();                      /* from sig.c */
-  
-    jump_to_top_level (v);
---- 7673,7679 ----
-    expanding_redir = 0;
-  
-!   if (parse_and_execute_level == 0)
-!     top_level_cleanup ();                    /* from sig.c */
-! 
-  
-    jump_to_top_level (v);
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 46
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 47
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-048 b/src/patches/bash/bash32-048
deleted file mode 100644 (file)
index 551dade..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-048
-
-Bug-Reported-by:       Steffen Kiess <s-kiess@web.de>
-Bug-Reference-ID:      <1223929957.5383.6.camel@fips>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-10/msg00047.html
-
-Bug-Description:
-
-When invoked as `bash -c', bash did not execute an EXIT trap when the last
-command in the executed list was a command run from the file system.
-
-Patch:
-
-*** /Users/chet/src/bash/bash-3.2-patched/builtins/evalstring.c        2006-07-28 15:12:16.000000000 -0400
---- builtins/evalstring.c      2008-11-13 18:38:45.000000000 -0500
-***************
-*** 249,252 ****
---- 249,253 ----
-              *   we're not running a trap AND
-              *   we have parsed the full command (string == '\0') AND
-+             *   we're not going to run the exit trap AND
-              *   we have a simple command without redirections AND
-              *   the command is not being timed AND
-***************
-*** 259,263 ****
-                 *bash_input.location.string == '\0' &&
-                 command->type == cm_simple &&
-!                !command->redirects && !command->value.Simple->redirects &&
-                 ((command->flags & CMD_TIME_PIPELINE) == 0) &&
-                 ((command->flags & CMD_INVERT_RETURN) == 0))
---- 260,265 ----
-                 *bash_input.location.string == '\0' &&
-                 command->type == cm_simple &&
-!                signal_is_trapped (EXIT_TRAP) == 0 &&
-!                command->redirects == 0 && command->value.Simple->redirects == 0 &&
-                 ((command->flags & CMD_TIME_PIPELINE) == 0) &&
-                 ((command->flags & CMD_INVERT_RETURN) == 0))
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 47
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 48
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-049 b/src/patches/bash/bash32-049
deleted file mode 100644 (file)
index 469c4c8..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-049
-
-Bug-Reported-by:       Len Lattanzi <llattanzi@apple.com>
-Bug-Reference-ID:      <52B1297F-6675-45CC-B63E-24745337D006@apple.com>
-Bug-Reference-URL:     
-
-Bug-Description:
-
-On systems where mbrtowc() returns -2 when passed a length argument with
-value 0, when using a multibyte locale, Readline's emacs-mode forward-char
-at the end of a line will leave the point beyond the end of the line.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/mbutil.c  2009-05-29 23:09:26.000000000 -0400
---- lib/readline/mbutil.c      2009-05-29 23:10:12.000000000 -0400
-***************
-*** 78,82 ****
-       int seed, count, find_non_zero;
-  {
-!   size_t tmp;
-    mbstate_t ps;
-    int point;
---- 78,82 ----
-       int seed, count, find_non_zero;
-  {
-!   size_t tmp, len;
-    mbstate_t ps;
-    int point;
-***************
-*** 99,103 ****
-    while (count > 0)  
-      {
-!       tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps);
-        if (MB_INVALIDCH ((size_t)tmp))
-       {
---- 99,106 ----
-    while (count > 0)  
-      {
-!       len = strlen (string + point);
-!       if (len == 0)
-!      break;
-!       tmp = mbrtowc (&wc, string+point, len, &ps);
-        if (MB_INVALIDCH ((size_t)tmp))
-       {
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 48
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 49
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-050 b/src/patches/bash/bash32-050
deleted file mode 100644 (file)
index aef537e..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-050
-
-Bug-Reported-by:       Jan Hnatek <Jan.Hnatek@Sun.COM>
-Bug-Reference-ID:      <4A44991F.8010005@sun.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2009-06/msg00084.html
-
-Bug-Description:
-
-On systems where mbrtowc() returns -2 when passed a length argument with
-value 0, when using a multibyte locale, Readline's emacs-mode forward-char
-at the end of a line will leave the point beyond the end of the line.
-
-Patch:
-
-*** ../bash-3.2-patched/lib/readline/mbutil.c  2009-06-16 11:26:50.000000000 -0400
---- lib/readline/mbutil.c      2009-01-04 14:32:33.000000000 -0500
-***************
-*** 132,141 ****
-      {
-        tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
-!       while (tmp > 0 && wcwidth (wc) == 0)
-       {
-         point += tmp;
-         tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
--        if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp))
--          break;
-       }
-      }
---- 130,137 ----
-      {
-        tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
-!       while (MB_NULLWCH (tmp) == 0 && MB_INVALIDCH (tmp) == 0 && wcwidth (wc) == 0)
-       {
-         point += tmp;
-         tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
-       }
-      }
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 49
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 50
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-051 b/src/patches/bash/bash32-051
deleted file mode 100644 (file)
index 404fbd6..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-051
-
-Bug-Reported-by:       werner@suse.de
-Bug-Reference-ID:      <201002251238.o1PCcYcg016893@boole.suse.de>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00132.html
-
-Bug-Description:
-
-When the `read' builtin times out after the timeout specified with -t is
-exceeded, it does not reset the flags that tell signal handlers to process
-signals immediately instead of deferring their handling.  This can result
-in unsafe functions being called from signal handlers, which can cause bash
-to hang or dump core.
-
-Patch:
-
-*** ../bash-3.2-patched/builtins/read.def      2008-04-29 21:25:00.000000000 -0400
---- builtins/read.def  2010-03-17 09:50:51.000000000 -0400
-***************
-*** 327,330 ****
---- 327,332 ----
-        if (code)
-       {
-+        interrupt_immediately--;
-+        terminate_immediately = 0;
-         run_unwind_frame ("read_builtin");
-         return (EXECUTION_FAILURE);
-*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
---- patchlevel.h       Mon Oct 16 14:22:54 2006
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 50
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 51
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-001 b/src/patches/bash/bash43-001
new file mode 100644 (file)
index 0000000..ea1c6b2
--- /dev/null
@@ -0,0 +1,58 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-001
+
+Bug-Reported-by:       NBaH <nbah@sfr.fr>
+Bug-Reference-ID:      <ler0b5$iu9$1@speranza.aioe.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html
+
+Bug-Description:
+
+A missing check for a valid option prevented `test -R' from working.  There
+is another problem that causes bash to look up the wrong variable name when
+processing the argument to `test -R'.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500
+--- test.c     2014-02-28 21:22:44.000000000 -0500
+***************
+*** 647,652 ****
+  
+      case 'R':
+!       v = find_variable (arg);
+!       return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE);
+      }
+  
+--- 647,652 ----
+  
+      case 'R':
+!       v = find_variable_noref (arg);
+!       return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE);
+      }
+  
+***************
+*** 724,727 ****
+--- 724,728 ----
+      case 'u': case 'v': case 'w': case 'x': case 'z':
+      case 'G': case 'L': case 'O': case 'S': case 'N':
++     case 'R':
+        return (1);
+      }
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 0
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 1
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-002 b/src/patches/bash/bash43-002
new file mode 100644 (file)
index 0000000..735b7b8
--- /dev/null
@@ -0,0 +1,62 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-002
+
+Bug-Reported-by:       Moe Tunes <moetunes42@gmail.com>
+Bug-Reference-ID:      <53103F49.3070100@gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html
+
+Bug-Description:
+
+A change to save state while running the DEBUG trap caused pipelines to hang
+on systems which need process group synchronization while building pipelines.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500
+--- trap.c     2014-02-28 09:51:43.000000000 -0500
+***************
+*** 921,925 ****
+  
+  #if defined (JOB_CONTROL)
+!       save_pipeline (1);     /* XXX only provides one save level */
+  #endif
+  
+--- 921,926 ----
+  
+  #if defined (JOB_CONTROL)
+!       if (sig != DEBUG_TRAP) /* run_debug_trap does this */
+!      save_pipeline (1);      /* XXX only provides one save level */
+  #endif
+  
+***************
+*** 941,945 ****
+  
+  #if defined (JOB_CONTROL)
+!       restore_pipeline (1);
+  #endif
+  
+--- 942,947 ----
+  
+  #if defined (JOB_CONTROL)
+!       if (sig != DEBUG_TRAP) /* run_debug_trap does this */
+!      restore_pipeline (1);
+  #endif
+  
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 1
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 2
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-003 b/src/patches/bash/bash43-003
new file mode 100644 (file)
index 0000000..0f32f41
--- /dev/null
@@ -0,0 +1,48 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-003
+
+Bug-Reported-by:       Anatol Pomozov <anatol.pomozov@gmail.com>
+Bug-Reference-ID:      <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
+
+Bug-Description:
+
+When in callback mode, some readline commands can cause readline to seg
+fault by passing invalid contexts to callback functions.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/readline/readline.c        2013-10-28 14:58:06.000000000 -0400
+--- lib/readline/readline.c    2014-03-10 14:15:02.000000000 -0400
+***************
+*** 745,749 ****
+  
+    RL_CHECK_SIGNALS ();
+!   if (r == 0)                        /* success! */
+      {
+        _rl_keyseq_chain_dispose ();
+--- 745,750 ----
+  
+    RL_CHECK_SIGNALS ();
+!   /* We only treat values < 0 specially to simulate recursion. */
+!   if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0))        /* success! or failure! */
+      {
+        _rl_keyseq_chain_dispose ();
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 2
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 3
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-004 b/src/patches/bash/bash43-004
new file mode 100644 (file)
index 0000000..010f04a
--- /dev/null
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-004
+
+Bug-Reported-by:       Daan van Rossum <daan@flash.uchicago.edu>
+Bug-Reference-ID:      <20140307072523.GA14250@flash.uchicago.edu>
+Bug-Reference-URL:     
+
+Bug-Description:
+
+The `.' command in vi mode cannot undo multi-key commands beginning with
+`c', `d', and `y' (command plus motion specifier).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/readline/readline.c        2013-10-28 14:58:06.000000000 -0400
+--- lib/readline/readline.c    2014-03-07 15:20:33.000000000 -0500
+***************
+*** 965,969 ****
+    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+        key != ANYOTHERKEY &&
+!       rl_key_sequence_length == 1 && /* XXX */
+        _rl_vi_textmod_command (key))
+      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+--- 965,969 ----
+    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+        key != ANYOTHERKEY &&
+!       _rl_dispatching_keymap == vi_movement_keymap &&
+        _rl_vi_textmod_command (key))
+      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 3
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 4
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-005 b/src/patches/bash/bash43-005
new file mode 100644 (file)
index 0000000..bcd4069
--- /dev/null
@@ -0,0 +1,63 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-005
+
+Bug-Reported-by:       David Sines <dave.gma@googlemail.com>
+Bug-Reference-ID:      <CAO3BAa_CK_Rgkhdfzs+NJ4KFYdB9qW3pvXQK0xLCi6GMmDU8bw@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html
+
+Bug-Description:
+
+When in Posix mode, bash did not correctly interpret the ANSI-C-style
+$'...' quoting mechanism when performing pattern substitution word
+expansions within double quotes.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/parse.y        2014-02-11 09:42:10.000000000 -0500
+--- parse.y    2014-03-07 20:57:15.000000000 -0500
+***************
+*** 3399,3403 ****
+           unescaped double-quotes or single-quotes, if any, shall occur." */
+        /* This was changed in Austin Group Interp 221 */
+!       if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+       continue;
+  
+--- 3399,3403 ----
+           unescaped double-quotes or single-quotes, if any, shall occur." */
+        /* This was changed in Austin Group Interp 221 */
+!       if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+       continue;
+  
+*** ../bash-4.3/y.tab.c        2014-02-11 10:57:47.000000000 -0500
+--- y.tab.c    2014-03-28 10:41:15.000000000 -0400
+***************
+*** 5711,5715 ****
+           unescaped double-quotes or single-quotes, if any, shall occur." */
+        /* This was changed in Austin Group Interp 221 */
+!       if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+       continue;
+  
+--- 5711,5715 ----
+           unescaped double-quotes or single-quotes, if any, shall occur." */
+        /* This was changed in Austin Group Interp 221 */
+!       if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+       continue;
+  
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 4
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 5
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-006 b/src/patches/bash/bash43-006
new file mode 100644 (file)
index 0000000..24ff057
--- /dev/null
@@ -0,0 +1,48 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-006
+
+Bug-Reported-by:       Eduardo A . Bustamante Lopez <dualbus@gmail.com>
+Bug-Reference-ID:      <20140228170013.GA16015@dualbus.me>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00091.html
+
+Bug-Description:
+
+A shell that started with job control active but was not interactive left
+the terminal in the wrong process group when exiting, causing its parent
+shell to get a stop signal when it attempted to read from the terminal.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500
+--- jobs.c     2014-03-02 18:05:09.000000000 -0500
+***************
+*** 4375,4379 ****
+  end_job_control ()
+  {
+!   if (interactive_shell)             /* XXX - should it be interactive? */
+      {
+        terminate_stopped_jobs ();
+--- 4375,4379 ----
+  end_job_control ()
+  {
+!   if (interactive_shell || job_control)              /* XXX - should it be just job_control? */
+      {
+        terminate_stopped_jobs ();
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 5
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 6
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-007 b/src/patches/bash/bash43-007
new file mode 100644 (file)
index 0000000..0d62c9e
--- /dev/null
@@ -0,0 +1,50 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-007
+
+Bug-Reported-by:       geir.hauge@gmail.com
+Bug-Reference-ID:      <20140318093650.B181C1C5B0B@gina.itea.ntnu.no>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html
+
+Bug-Description:
+
+Using compound assignments for associative arrays like
+
+assoc=( [x]= [y]=bar )
+
+left the value corresponding to the key `x' NULL.  This caused subsequent
+lookups to interpret it as unset.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/arrayfunc.c    2013-08-02 16:19:59.000000000 -0400
+--- arrayfunc.c        2014-03-18 11:08:15.000000000 -0400
+***************
+*** 598,601 ****
+--- 598,606 ----
+       {
+         val = expand_assignment_string_to_string (val, 0);
++        if (val == 0)
++          {
++            val = (char *)xmalloc (1);
++            val[0] = '\0';    /* like do_assignment_internal */
++          }
+         free_val = 1;
+       }
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 6
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 7
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-008 b/src/patches/bash/bash43-008
new file mode 100644 (file)
index 0000000..0ae7c95
--- /dev/null
@@ -0,0 +1,188 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-008
+
+Bug-Reported-by:       Stephane Chazelas <stephane.chazelas@gmail.com>
+Bug-Reference-ID:      <20140318135901.GB22158@chaz.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00098.html
+
+Bug-Description:
+
+Some extended glob patterns incorrectly matched filenames with a leading
+dot, regardless of the setting of the `dotglob' option.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/glob/gmisc.c       2013-10-28 14:45:25.000000000 -0400
+--- lib/glob/gmisc.c   2014-03-19 09:16:08.000000000 -0400
+***************
+*** 211,214 ****
+--- 211,215 ----
+      case '!':
+      case '@':
++     case '?':
+        return (pat[1] == LPAREN);
+      default:
+*** ../bash-4.3/lib/glob/glob.c        2014-01-31 21:43:51.000000000 -0500
+--- lib/glob/glob.c    2014-03-20 09:01:26.000000000 -0400
+***************
+*** 180,202 ****
+       int flags;
+  {
+!   char *pp, *pe, *t;
+!   int n, r;
+  
+    pp = pat + 2;
+!   pe = pp + strlen (pp) - 1; /*(*/
+!   if (*pe != ')')
+!     return 0;
+!   if ((t = strchr (pp, '|')) == 0)   /* easy case first */
+      {
+        *pe = '\0';
+        r = skipname (pp, dname, flags);       /*(*/
+        *pe = ')';
+        return r;
+      }
+    while (t = glob_patscan (pp, pe, '|'))
+      {
+        n = t[-1];
+        t[-1] = '\0';
+        r = skipname (pp, dname, flags);
+        t[-1] = n;
+        if (r == 0)    /* if any pattern says not skip, we don't skip */
+--- 180,215 ----
+       int flags;
+  {
+!   char *pp, *pe, *t, *se;
+!   int n, r, negate;
+  
++   negate = *pat == '!';
+    pp = pat + 2;
+!   se = pp + strlen (pp) - 1;         /* end of string */
+!   pe = glob_patscan (pp, se, 0);     /* end of extglob pattern (( */
+!   /* we should check for invalid extglob pattern here */
+!   /* if pe != se we have more of the pattern at the end of the extglob
+!      pattern. Check the easy case first ( */
+!   if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0)
+      {
+        *pe = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++       r = mbskipname (pp, dname, flags);
++ #else
+        r = skipname (pp, dname, flags);       /*(*/
++ #endif
+        *pe = ')';
+        return r;
+      }
++ 
++   /* check every subpattern */
+    while (t = glob_patscan (pp, pe, '|'))
+      {
+        n = t[-1];
+        t[-1] = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++       r = mbskipname (pp, dname, flags);
++ #else
+        r = skipname (pp, dname, flags);
++ #endif
+        t[-1] = n;
+        if (r == 0)    /* if any pattern says not skip, we don't skip */
+***************
+*** 205,219 ****
+      }        /*(*/
+  
+!   if (pp == pe)              /* glob_patscan might find end of pattern */
+      return r;
+  
+!   *pe = '\0';
+! #  if defined (HANDLE_MULTIBYTE)
+!   r = mbskipname (pp, dname, flags); /*(*/
+! #  else
+!   r = skipname (pp, dname, flags);   /*(*/
+! #  endif
+!   *pe = ')';
+!   return r;
+  }
+  #endif
+--- 218,227 ----
+      }        /*(*/
+  
+!   /* glob_patscan might find end of pattern */
+!   if (pp == se)
+      return r;
+  
+!   /* but if it doesn't then we didn't match a leading dot */
+!   return 0;
+  }
+  #endif
+***************
+*** 278,289 ****
+  {
+  #if EXTENDED_GLOB
+!   wchar_t *pp, *pe, *t, n;
+!   int r;
+  
+    pp = pat + 2;
+!   pe = pp + wcslen (pp) - 1; /*(*/
+!   if (*pe != L')')
+!     return 0;
+!   if ((t = wcschr (pp, L'|')) == 0)
+      {
+        *pe = L'\0';
+--- 286,298 ----
+  {
+  #if EXTENDED_GLOB
+!   wchar_t *pp, *pe, *t, n, *se;
+!   int r, negate;
+  
++   negate = *pat == L'!';
+    pp = pat + 2;
+!   se = pp + wcslen (pp) - 1; /*(*/
+!   pe = glob_patscan_wc (pp, se, 0);
+! 
+!   if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0)
+      {
+        *pe = L'\0';
+***************
+*** 292,295 ****
+--- 301,306 ----
+        return r;
+      }
++ 
++   /* check every subpattern */
+    while (t = glob_patscan_wc (pp, pe, '|'))
+      {
+***************
+*** 306,313 ****
+      return r;
+  
+!   *pe = L'\0';
+!   r = wchkname (pp, dname);  /*(*/
+!   *pe = L')';
+!   return r;
+  #else
+    return (wchkname (pat, dname));
+--- 317,322 ----
+      return r;
+  
+!   /* but if it doesn't then we didn't match a leading dot */
+!   return 0;
+  #else
+    return (wchkname (pat, dname));
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 7
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 8
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-009 b/src/patches/bash/bash43-009
new file mode 100644 (file)
index 0000000..015835c
--- /dev/null
@@ -0,0 +1,64 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-009
+
+Bug-Reported-by:       Matthias Klose <doko@debian.org>
+Bug-Reference-ID:      <53346FC8.6090005@debian.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00171.html
+
+Bug-Description:
+
+There is a problem with unsigned sign extension when attempting to reallocate
+the input line when it is fewer than 3 characters long and there has been a
+history expansion.  The sign extension causes the shell to not reallocate the
+line, which results in a segmentation fault when it writes past the end.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/parse.y        2014-02-11 09:42:10.000000000 -0500
+--- parse.y    2014-03-27 16:33:29.000000000 -0400
+***************
+*** 2425,2429 ****
+        if (shell_input_line_terminator != EOF)
+       {
+!        if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3)
+           shell_input_line = (char *)xrealloc (shell_input_line,
+                                       1 + (shell_input_line_size += 2));
+--- 2425,2429 ----
+        if (shell_input_line_terminator != EOF)
+       {
+!        if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size))
+           shell_input_line = (char *)xrealloc (shell_input_line,
+                                       1 + (shell_input_line_size += 2));
+*** ../bash-4.3-patched/y.tab.c        2014-03-28 11:17:06.000000000 -0400
+--- y.tab.c    2014-04-07 11:48:31.000000000 -0400
+***************
+*** 4737,4741 ****
+        if (shell_input_line_terminator != EOF)
+       {
+!        if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3)
+           shell_input_line = (char *)xrealloc (shell_input_line,
+                                       1 + (shell_input_line_size += 2));
+--- 4737,4741 ----
+        if (shell_input_line_terminator != EOF)
+       {
+!        if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size))
+           shell_input_line = (char *)xrealloc (shell_input_line,
+                                       1 + (shell_input_line_size += 2));
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 8
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 9
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-010 b/src/patches/bash/bash43-010
new file mode 100644 (file)
index 0000000..835a96e
--- /dev/null
@@ -0,0 +1,157 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-010
+
+Bug-Reported-by:       Albert Shih <Albert.Shih@obspm.fr>
+Bug-Reference-ID:      Wed, 5 Mar 2014 23:01:40 +0100
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00028.html
+
+Bug-Description:
+
+Patch (apply with `patch -p0'):
+
+This patch changes the behavior of programmable completion to compensate
+for two assumptions made by the bash-completion package.  Bash-4.3 changed
+to dequote the argument to programmable completion only under certain
+circumstances, to make the behavior of compgen more consistent when run
+from the command line -- closer to the behavior when run by a shell function
+run as part of programmable completion.  Bash-completion can pass quoted
+arguments to compgen when the original word to be completed was not quoted,
+expecting programmable completion to dequote the word before attempting
+completion.
+
+This patch fixes two cases:
+
+1.  An empty string that bash-completion passes to compgen as a quoted null
+    string ('').
+
+2.  An unquoted word that bash-completion quotes using single quotes or
+    backslashes before passing it to compgen.
+
+In these cases, since readline did not detect a quote character in the original
+word to be completed, bash-4.3 
+
+*** ../bash-4.3/externs.h      2014-01-02 14:58:20.000000000 -0500
+--- externs.h  2014-03-13 14:42:57.000000000 -0400
+***************
+*** 325,328 ****
+--- 325,329 ----
+  extern char *sh_backslash_quote_for_double_quotes __P((char *));
+  extern int sh_contains_shell_metas __P((char *));
++ extern int sh_contains_quotes __P((char *));
+  
+  /* declarations for functions defined in lib/sh/spell.c */
+*** ../bash-4.3/lib/sh/shquote.c       2013-03-31 21:53:32.000000000 -0400
+--- lib/sh/shquote.c   2014-03-13 14:42:57.000000000 -0400
+***************
+*** 312,313 ****
+--- 312,327 ----
+    return (0);
+  }
++ 
++ int
++ sh_contains_quotes (string)
++      char *string;
++ {
++   char *s;
++ 
++   for (s = string; s && *s; s++)
++     {
++       if (*s == '\'' || *s == '"' || *s == '\\')
++      return 1;
++     }
++   return 0;
++ }
+*** ../bash-4.3/pcomplete.c    2013-08-26 15:23:45.000000000 -0400
+--- pcomplete.c        2014-03-25 17:23:23.000000000 -0400
+***************
+*** 184,187 ****
+--- 184,188 ----
+  COMPSPEC *pcomp_curcs;
+  const char *pcomp_curcmd;
++ const char *pcomp_curtxt;
+  
+  #ifdef DEBUG
+***************
+*** 754,757 ****
+--- 755,784 ----
+         dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+       }
++       /* Intended to solve a mismatched assumption by bash-completion.  If
++       the text to be completed is empty, but bash-completion turns it into
++       a quoted string ('') assuming that this code will dequote it before
++       calling readline, do the dequoting. */
++       else if (iscompgen && iscompleting &&
++             pcomp_curtxt && *pcomp_curtxt == 0 &&
++             text && (*text == '\'' || *text == '"') && text[1] == text[0] && text[2] == 0 && 
++             rl_filename_dequoting_function)
++      dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
++       /* Another mismatched assumption by bash-completion.  If compgen is being
++               run as part of bash-completion, and the argument to compgen is not
++               the same as the word originally passed to the programmable completion
++               code, dequote the argument if it has quote characters.  It's an
++               attempt to detect when bash-completion is quoting its filename
++               argument before calling compgen. */
++       /* We could check whether gen_shell_function_matches is in the call
++       stack by checking whether the gen-shell-function-matches tag is in
++       the unwind-protect stack, but there's no function to do that yet.
++       We could simply check whether we're executing in a function by
++       checking variable_context, and may end up doing that. */
++       else if (iscompgen && iscompleting && rl_filename_dequoting_function &&
++             pcomp_curtxt && text &&
++             STREQ (pcomp_curtxt, text) == 0 &&
++             variable_context &&
++             sh_contains_quotes (text))       /* guess */
++      dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+        else
+       dfn = savestring (text);
+***************
+*** 1523,1527 ****
+  {
+    COMPSPEC *cs, *oldcs;
+!   const char *oldcmd;
+    STRINGLIST *ret;
+  
+--- 1550,1554 ----
+  {
+    COMPSPEC *cs, *oldcs;
+!   const char *oldcmd, *oldtxt;
+    STRINGLIST *ret;
+  
+***************
+*** 1546,1552 ****
+--- 1573,1581 ----
+    oldcs = pcomp_curcs;
+    oldcmd = pcomp_curcmd;
++   oldtxt = pcomp_curtxt;
+  
+    pcomp_curcs = cs;
+    pcomp_curcmd = cmd;
++   pcomp_curtxt = word;
+  
+    ret = gen_compspec_completions (cs, cmd, word, start, end, foundp);
+***************
+*** 1554,1557 ****
+--- 1583,1587 ----
+    pcomp_curcs = oldcs;
+    pcomp_curcmd = oldcmd;
++   pcomp_curtxt = oldtxt;
+  
+    /* We need to conditionally handle setting *retryp here */
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 9
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-011 b/src/patches/bash/bash43-011
new file mode 100644 (file)
index 0000000..cdc1572
--- /dev/null
@@ -0,0 +1,49 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-011
+
+Bug-Reported-by:       Egmont Koblinger <egmont@gmail.com>
+Bug-Reference-ID:      <CAGWcZk+bU5Jo1M+tutGvL-250UBE9DXjpeJVofYJSFcqFEVfMg@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html
+
+Bug-Description:
+
+The signal handling changes to bash and readline (to avoid running any code
+in a signal handler context) cause the cursor to be placed on the wrong
+line of a multi-line command after a ^C interrupts editing.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/lib/readline/display.c 2013-12-27 13:10:56.000000000 -0500
+--- lib/readline/display.c     2014-03-27 11:52:45.000000000 -0400
+***************
+*** 2678,2682 ****
+    if (_rl_echoing_p)
+      {
+!       _rl_move_vert (_rl_vis_botlin);
+        _rl_vis_botlin = 0;
+        fflush (rl_outstream);
+--- 2678,2683 ----
+    if (_rl_echoing_p)
+      {
+!       if (_rl_vis_botlin > 0)        /* minor optimization plus bug fix */
+!      _rl_move_vert (_rl_vis_botlin);
+        _rl_vis_botlin = 0;
+        fflush (rl_outstream);
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 11
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-012 b/src/patches/bash/bash43-012
new file mode 100644 (file)
index 0000000..176fa15
--- /dev/null
@@ -0,0 +1,43 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-012
+
+Bug-Reported-by:       Eduardo A. Bustamante López<dualbus@gmail.com>
+Bug-Reference-ID:      <5346B54C.4070205@case.edu>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00051.html
+
+Bug-Description:
+
+When a SIGCHLD trap runs a command containing a shell builtin while
+a script is running `wait' to wait for all running children to complete,
+the SIGCHLD trap will not be run once for each child that terminates.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/jobs.c 2014-03-28 10:54:19.000000000 -0400
+--- jobs.c     2014-04-15 08:47:03.000000000 -0400
+***************
+*** 3598,3601 ****
+--- 3598,3602 ----
+    unwind_protect_pointer (the_pipeline);
+    unwind_protect_pointer (subst_assign_varlist);
++   unwind_protect_pointer (this_shell_builtin);
+  
+    /* We have to add the commands this way because they will be run
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 11
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 12
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-013 b/src/patches/bash/bash43-013
new file mode 100644 (file)
index 0000000..8f4006b
--- /dev/null
@@ -0,0 +1,66 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-013
+
+Bug-Reported-by:       <Trond.Endrestol@ximalas.info>
+Bug-Reference-ID:      <alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
+
+Bug-Description:
+
+Using reverse-i-search when horizontal scrolling is enabled does not redisplay
+the entire line containing the successful search results.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400
+--- lib/readline/display.c     2014-04-20 18:32:52.000000000 -0400
+***************
+*** 1638,1642 ****
+       the spot of first difference is before the end of the invisible chars,
+       lendiff needs to be adjusted. */
+!   if (current_line == 0 && !_rl_horizontal_scroll_mode &&
+        current_invis_chars != visible_wrap_offset)
+      {
+--- 1638,1642 ----
+       the spot of first difference is before the end of the invisible chars,
+       lendiff needs to be adjusted. */
+!   if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
+        current_invis_chars != visible_wrap_offset)
+      {
+***************
+*** 1826,1831 ****
+               _rl_last_c_pos += bytes_to_insert;
+  
+             if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+!              goto clear_rest_of_line;
+           }
+       }
+--- 1826,1836 ----
+               _rl_last_c_pos += bytes_to_insert;
+  
++            /* XXX - we only want to do this if we are at the end of the line
++               so we move there with _rl_move_cursor_relative */
+             if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+!              {
+!                _rl_move_cursor_relative (ne-new, new);
+!                goto clear_rest_of_line;
+!              }
+           }
+       }
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 12
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 13
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-014 b/src/patches/bash/bash43-014
new file mode 100644 (file)
index 0000000..f837196
--- /dev/null
@@ -0,0 +1,102 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-014
+
+Bug-Reported-by:       Greg Wooledge <wooledg@eeg.ccf.org>
+Bug-Reference-ID:      <20140418202123.GB7660@eeg.ccf.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/help-bash/2014-04/msg00004.html
+
+Bug-Description:
+
+Under certain circumstances, $@ is expanded incorrectly in contexts where
+word splitting is not performed.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/subst.c        2014-01-23 16:26:37.000000000 -0500
+--- subst.c    2014-04-19 15:41:26.000000000 -0400
+***************
+*** 3249,3254 ****
+--- 3249,3256 ----
+      return ((char *)NULL);
+  
++   expand_no_split_dollar_star = 1;
+    w->flags |= W_NOSPLIT2;
+    l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0);
++   expand_no_split_dollar_star = 0;
+    if (l)
+      {
+***************
+*** 7848,7851 ****
+--- 7850,7857 ----
+        according to POSIX.2, this expands to a list of the positional
+        parameters no matter what IFS is set to. */
++       /* XXX - what to do when in a context where word splitting is not
++       performed? Even when IFS is not the default, posix seems to imply
++       that we behave like unquoted $* ?  Maybe we should use PF_NOSPLIT2
++       here. */
+        temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted);
+  
+***************
+*** 8817,8820 ****
+--- 8823,8827 ----
+      {
+        char *ifs_chars;
++       char *tstring;
+  
+        ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL;
+***************
+*** 8831,8834 ****
+--- 8838,8865 ----
+        if (split_on_spaces)
+       list = list_string (istring, " ", 1);   /* XXX quoted == 1? */
++       /* If we have $@ (has_dollar_at != 0) and we are in a context where we
++       don't want to split the result (W_NOSPLIT2), and we are not quoted,
++       we have already separated the arguments with the first character of
++       $IFS.  In this case, we want to return a list with a single word
++       with the separator possibly replaced with a space (it's what other
++       shells seem to do).
++       quoted_dollar_at is internal to this function and is set if we are
++       passed an argument that is unquoted (quoted == 0) but we encounter a
++       double-quoted $@ while expanding it. */
++       else if (has_dollar_at && quoted_dollar_at == 0 && ifs_chars && quoted == 0 && (word->flags & W_NOSPLIT2))
++      {
++        /* Only split and rejoin if we have to */
++        if (*ifs_chars && *ifs_chars != ' ')
++          {
++            list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
++            tstring = string_list (list);
++          }
++        else
++          tstring = istring;
++        tword = make_bare_word (tstring);
++        if (tstring != istring)
++          free (tstring);
++        goto set_word_flags;
++      }
+        else if (has_dollar_at && ifs_chars)
+       list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
+***************
+*** 8836,8839 ****
+--- 8867,8871 ----
+       {
+         tword = make_bare_word (istring);
++ set_word_flags:
+         if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED))
+           tword->flags |= W_QUOTED;
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 13
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 14
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-015 b/src/patches/bash/bash43-015
new file mode 100644 (file)
index 0000000..9c4e5ea
--- /dev/null
@@ -0,0 +1,58 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-015
+
+Bug-Reported-by:       Clark Wang <dearvoid@gmail.com>
+Bug-Reference-ID:      <CADv8-og2TOSoabXeNVXVGaXN3tEMHnYVq1rwOLe5meaRPSGRig@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00095.html
+
+Bug-Description:
+
+When completing directory names, the directory name is dequoted twice.
+This causes problems for directories with single and double quotes in
+their names.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/bashline.c     2014-02-09 19:56:58.000000000 -0500
+--- bashline.c 2014-04-25 14:57:52.000000000 -0400
+***************
+*** 4168,4174 ****
+  
+    qc = rl_dispatching ? rl_completion_quote_character : 0;  
+!   dfn = bash_dequote_filename ((char *)text, qc);
+    m1 = rl_completion_matches (dfn, rl_filename_completion_function);
+!   free (dfn);
+  
+    if (m1 == 0 || m1[0] == 0)
+--- 4209,4222 ----
+  
+    qc = rl_dispatching ? rl_completion_quote_character : 0;  
+!   /* If rl_completion_found_quote != 0, rl_completion_matches will call the
+!      filename dequoting function, causing the directory name to be dequoted
+!      twice. */
+!   if (rl_dispatching && rl_completion_found_quote == 0)
+!     dfn = bash_dequote_filename ((char *)text, qc);
+!   else
+!     dfn = (char *)text;
+    m1 = rl_completion_matches (dfn, rl_filename_completion_function);
+!   if (dfn != text)
+!     free (dfn);
+  
+    if (m1 == 0 || m1[0] == 0)
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 14
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 15
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-016 b/src/patches/bash/bash43-016
new file mode 100644 (file)
index 0000000..882d593
--- /dev/null
@@ -0,0 +1,132 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-016
+
+Bug-Reported-by:       Pierre Gaston <pierre.gaston@gmail.com>
+Bug-Reference-ID:      <CAPSX3sTCD61k1VQLJ5r-LWzEt+e7Xc-fxXmwn2u8EA5gJJej8Q@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html
+
+Bug-Description:
+
+An extended glob pattern containing a slash (`/') causes the globbing code
+to misinterpret it as a directory separator.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/lib/glob/glob.c        2014-03-28 10:54:23.000000000 -0400
+--- lib/glob/glob.c    2014-05-02 10:24:28.000000000 -0400
+***************
+*** 124,127 ****
+--- 124,129 ----
+  extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int));
+  
++ extern char *glob_dirscan __P((char *, int));
++ 
+  /* Compile `glob_loop.c' for single-byte characters. */
+  #define CHAR unsigned char
+***************
+*** 188,191 ****
+--- 190,196 ----
+    pe = glob_patscan (pp, se, 0);     /* end of extglob pattern (( */
+    /* we should check for invalid extglob pattern here */
++   if (pe == 0)
++     return 0;
++ 
+    /* if pe != se we have more of the pattern at the end of the extglob
+       pattern. Check the easy case first ( */
+***************
+*** 1016,1020 ****
+    char **result;
+    unsigned int result_size;
+!   char *directory_name, *filename, *dname;
+    unsigned int directory_len;
+    int free_dirname;                  /* flag */
+--- 1021,1025 ----
+    char **result;
+    unsigned int result_size;
+!   char *directory_name, *filename, *dname, *fn;
+    unsigned int directory_len;
+    int free_dirname;                  /* flag */
+***************
+*** 1032,1035 ****
+--- 1037,1052 ----
+    /* Find the filename.  */
+    filename = strrchr (pathname, '/');
++ #if defined (EXTENDED_GLOB)
++   if (filename && extended_glob)
++     {
++       fn = glob_dirscan (pathname, '/');
++ #if DEBUG_MATCHING
++       if (fn != filename)
++      fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename);
++ #endif
++       filename = fn;
++     }
++ #endif
++ 
+    if (filename == NULL)
+      {
+*** ../bash-4.3-patched/lib/glob/gmisc.c       2014-03-28 10:54:23.000000000 -0400
+--- lib/glob/gmisc.c   2014-05-02 09:35:57.000000000 -0400
+***************
+*** 43,46 ****
+--- 43,48 ----
+  #define WRPAREN         L')'
+  
++ extern char *glob_patscan __P((char *, char *, int));
++ 
+  /* Return 1 of the first character of WSTRING could match the first
+     character of pattern WPAT.  Wide character version. */
+***************
+*** 376,377 ****
+--- 378,410 ----
+    return matlen;
+  }
++ 
++ /* Skip characters in PAT and return the final occurrence of DIRSEP.  This
++    is only called when extended_glob is set, so we have to skip over extglob
++    patterns x(...) */
++ char *
++ glob_dirscan (pat, dirsep)
++      char *pat;
++      int dirsep;
++ {
++   char *p, *d, *pe, *se;
++ 
++   d = pe = se = 0;
++   for (p = pat; p && *p; p++)
++     {
++       if (extglob_pattern_p (p))
++      {
++        if (se == 0)
++          se = p + strlen (p) - 1;
++        pe = glob_patscan (p + 2, se, 0);
++        if (pe == 0)
++          continue;
++        else if (*pe == 0)
++          break;
++        p = pe - 1;   /* will do increment above */
++        continue;
++      }
++       if (*p ==  dirsep)
++      d = p;
++     }
++   return d;
++ }
+
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 15
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 16
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-017 b/src/patches/bash/bash43-017
new file mode 100644 (file)
index 0000000..4016fb9
--- /dev/null
@@ -0,0 +1,51 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-017
+
+Bug-Reported-by:       Dan Douglas <ormaaj@gmail.com>
+Bug-Reference-ID:      <7781746.RhfoTROLxF@smorgbox>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html
+
+Bug-Description:
+
+The code that creates local variables should not clear the `invisible'
+attribute when returning an existing local variable.  Let the code that
+actually assigns a value clear it.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/variables.c    2014-02-14 11:55:12.000000000 -0500
+--- variables.c        2014-05-07 10:53:57.000000000 -0400
+***************
+*** 2198,2205 ****
+    old_var = find_variable (name);
+    if (old_var && local_p (old_var) && old_var->context == variable_context)
+!     {
+!       VUNSETATTR (old_var, att_invisible);   /* XXX */
+!       return (old_var);
+!     }
+  
+    was_tmpvar = old_var && tempvar_p (old_var);
+--- 2260,2264 ----
+    old_var = find_variable (name);
+    if (old_var && local_p (old_var) && old_var->context == variable_context)
+!     return (old_var);
+  
+    was_tmpvar = old_var && tempvar_p (old_var);
+
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 16
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 17
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash43-018 b/src/patches/bash/bash43-018
new file mode 100644 (file)
index 0000000..39499f6
--- /dev/null
@@ -0,0 +1,44 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  4.3
+Patch-ID:      bash43-018
+
+Bug-Reported-by:       Geir Hauge <geir.hauge@gmail.com>
+Bug-Reference-ID:      <CAO-BiTLOvfPXDypg61jcBausADrxUKJejakV2WTWP26cW0=rgA@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00040.html
+
+Bug-Description:
+
+When assigning an array variable using the compound assignment syntax,
+but using `declare' with the rhs of the compound assignment quoted, the
+shell did not mark the variable as visible after successfully performing
+the assignment.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/arrayfunc.c    2014-03-28 10:54:21.000000000 -0400
+--- arrayfunc.c        2014-05-12 11:19:00.000000000 -0400
+***************
+*** 180,183 ****
+--- 180,184 ----
+    FREE (newval);
+  
++   VUNSETATTR (entry, att_invisible); /* no longer invisible */
+    return (entry);
+  }
+
+*** ../bash-4.3/patchlevel.h   2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h       2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 17
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 18
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/coreutils-5.96-futimes.patch b/src/patches/coreutils-5.96-futimes.patch
deleted file mode 100644 (file)
index e91f1df..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
---- coreutils-6.0.orig/lib/utimens.c   2006-06-11 09:14:31.000000000 +0200
-+++ coreutils-6.0/lib/utimens.c        2007-07-17 00:41:08.000000000 +0200
-@@ -75,7 +75,7 @@
-    Return 0 on success, -1 (setting errno) on failure.  */
- int
--futimens (int fd ATTRIBUTE_UNUSED,
-+cu_futimens (int fd ATTRIBUTE_UNUSED,
-         char const *file, struct timespec const timespec[2])
- {
-   /* There's currently no interface to set file timestamps with
-@@ -168,5 +168,5 @@
- int
- utimens (char const *file, struct timespec const timespec[2])
- {
--  return futimens (-1, file, timespec);
-+  return cu_futimens (-1, file, timespec);
- }
---- coreutils-6.0.orig/lib/utimens.h   2004-11-23 21:41:51.000000000 +0100
-+++ coreutils-6.0/lib/utimens.h        2007-07-17 00:41:31.000000000 +0200
-@@ -1,3 +1,3 @@
- #include "timespec.h"
--int futimens (int, char const *, struct timespec const [2]);
-+int cu_futimens (int, char const *, struct timespec const [2]);
- int utimens (char const *, struct timespec const [2]);
---- coreutils-6.0.orig/src/copy.c      2007-07-16 23:18:42.000000000 +0200
-+++ coreutils-6.0/src/copy.c   2007-07-17 00:43:10.000000000 +0200
-@@ -648,7 +648,7 @@
-       timespec[0] = get_stat_atime (src_sb);
-       timespec[1] = get_stat_mtime (src_sb);
--      if (futimens (dest_desc, dst_name, timespec) != 0)
-+      if (cu_futimens (dest_desc, dst_name, timespec) != 0)
-       {
-         error (0, errno, _("preserving times for %s"), quote (dst_name));
-         if (x->require_preserve)
---- coreutils-6.0.orig/src/touch.c     2005-11-02 11:01:07.000000000 +0100
-+++ coreutils-6.0/src/touch.c  2007-07-17 00:43:51.000000000 +0200
-@@ -167,7 +167,7 @@
-   if (amtime_now)
-     {
--      /* Pass NULL to futimens so it will not fail if we have
-+      /* Pass NULL to cu_futimens so it will not fail if we have
-        write access to the file, but don't own it.  */
-       t = NULL;
-     }
-@@ -182,7 +182,7 @@
-       t = timespec;
-     }
--  ok = (futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0);
-+  ok = (cu_futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0);
-   if (fd == STDIN_FILENO)
-     {
diff --git a/src/patches/coreutils-5.96-i18n-1.patch b/src/patches/coreutils-5.96-i18n-1.patch
deleted file mode 100644 (file)
index d1c8cf0..0000000
+++ /dev/null
@@ -1,4052 +0,0 @@
-Submitted by: Alexander E. Patrakov
-Date: 2005-11-12
-Initial Package Version: 5.93
-Upstream Status: Not accepted, but planned for 6.0
-Origin: RedHat CVS, see below how to regenerate
-http://cvs.fedora.redhat.com/viewcvs/*checkout*/devel/coreutils/coreutils-i18n.patch?rev=1.14
-Description: This patch fixes various problems with multibyte character support.
-LSB >= 2.0 tests for features added by this patch, but only Coreutils-5.2.1 plus
-http://www.linuxfromscratch.org/~alexander/patches/coreutils-5.2.1-i18n_fixes-1.patch
-actually pass the Li18nux2000-level1 testsuite.
-
-To regenerate:
-Get http://cvs.fedora.redhat.com/viewcvs/*checkout*/devel/coreutils/coreutils-i18n.patch?rev=1.14
-Replace the coreutils-5.93/tests/sort/Makefile.in hunk with that from rev 1.13
-Add this header.
-
---- coreutils-5.93/lib/linebuffer.h.i18n       2005-05-14 08:58:06.000000000 +0100
-+++ coreutils-5.93/lib/linebuffer.h    2005-12-23 08:53:01.000000000 +0000
-@@ -22,6 +22,11 @@
- # include <stdio.h>
-+/* Get mbstate_t.  */
-+# if HAVE_WCHAR_H
-+#  include <wchar.h>
-+# endif
-+
- /* A `struct linebuffer' holds a line of text. */
- struct linebuffer
-@@ -29,6 +34,9 @@
-   size_t size;                        /* Allocated. */
-   size_t length;              /* Used. */
-   char *buffer;
-+# if HAVE_WCHAR_H
-+  mbstate_t state;
-+# endif
- };
- /* Initialize linebuffer LINEBUFFER for use. */
---- coreutils-5.93/src/cut.c.i18n      2005-08-12 08:16:25.000000000 +0100
-+++ coreutils-5.93/src/cut.c   2005-12-23 08:53:01.000000000 +0000
-@@ -29,6 +29,11 @@
- #include <assert.h>
- #include <getopt.h>
- #include <sys/types.h>
-+
-+/* Get mbstate_t, mbrtowc().  */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
- #include "system.h"
- #include "error.h"
-@@ -37,6 +42,18 @@
- #include "quote.h"
- #include "xstrndup.h"
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+   installation; work around this configuration error.        */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
-+# undef MB_LEN_MAX
-+# define MB_LEN_MAX 16
-+#endif
-+
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
- /* The official name of this program (e.g., no `g' prefix).  */
- #define PROGRAM_NAME "cut"
-@@ -67,6 +84,52 @@
-     }                                                 \
-   while (0)
-+/* Refill the buffer BUF to get a multibyte character. */
-+#define REFILL_BUFFER(BUF, BUFPOS, BUFLEN, STREAM)                    \
-+  do                                                                  \
-+    {                                                                 \
-+      if (BUFLEN < MB_LEN_MAX && !feof (STREAM) && !ferror (STREAM))  \
-+      {                                                               \
-+        memmove (BUF, BUFPOS, BUFLEN);                                \
-+        BUFLEN += fread (BUF + BUFLEN, sizeof(char), BUFSIZ, STREAM); \
-+        BUFPOS = BUF;                                                 \
-+      }                                                               \
-+    }                                                                 \
-+  while (0)
-+
-+/* Get wide character on BUFPOS. BUFPOS is not included after that.
-+   If byte sequence is not valid as a character, CONVFAIL is 1. Otherwise 0. */ 
-+#define GET_NEXT_WC_FROM_BUFFER(WC, BUFPOS, BUFLEN, MBLENGTH, STATE, CONVFAIL) \
-+  do                                                                  \
-+    {                                                                 \
-+      mbstate_t state_bak;                                            \
-+                                                                      \
-+      if (BUFLEN < 1)                                                 \
-+      {                                                               \
-+        WC = WEOF;                                                    \
-+        break;                                                        \
-+      }                                                               \
-+                                                                      \
-+      /* Get a wide character. */                                     \
-+      CONVFAIL = 0;                                                   \
-+      state_bak = STATE;                                              \
-+      MBLENGTH = mbrtowc ((wchar_t *)&WC, BUFPOS, BUFLEN, &STATE);    \
-+                                                                      \
-+      switch (MBLENGTH)                                                       \
-+      {                                                               \
-+      case (size_t)-1:                                                \
-+      case (size_t)-2:                                                \
-+        CONVFAIL++;                                                   \
-+        STATE = state_bak;                                            \
-+        /* Fall througn. */                                           \
-+                                                                      \
-+      case 0:                                                         \
-+        MBLENGTH = 1;                                                 \
-+        break;                                                        \
-+      }                                                               \
-+    }                                                                 \
-+  while (0)
-+
- struct range_pair
-   {
-     size_t lo;
-@@ -85,7 +148,7 @@
- /* The number of bytes allocated for FIELD_1_BUFFER.  */
- static size_t field_1_bufsize;
--/* The largest field or byte index used as an endpoint of a closed
-+/* The largest byte, character or field index used as an endpoint of a closed
-    or degenerate range specification;  this doesn't include the starting
-    index of right-open-ended ranges.  For example, with either range spec
-    `2-5,9-', `2-3,5,9-' this variable would be set to 5.  */
-@@ -97,10 +160,11 @@
- /* This is a bit vector.
-    In byte mode, which bytes to output.
-+   In character mode, which characters to output.
-    In field mode, which DELIM-separated fields to output.
--   Both bytes and fields are numbered starting with 1,
-+   Bytes, characters and fields are numbered starting with 1,
-    so the zeroth bit of this array is unused.
--   A field or byte K has been selected if
-+   A byte, character or field K has been selected if
-    (K <= MAX_RANGE_ENDPOINT and is_printable_field(K))
-     || (EOL_RANGE_START > 0 && K >= EOL_RANGE_START).  */
- static unsigned char *printable_field;
-@@ -109,9 +173,12 @@
-   {
-     undefined_mode,
--    /* Output characters that are in the given bytes. */
-+    /* Output bytes that are at the given positions. */
-     byte_mode,
-+    /* Output characters that are at the given positions. */
-+    character_mode,
-+
-     /* Output the given delimeter-separated fields. */
-     field_mode
-   };
-@@ -121,6 +188,13 @@
- static enum operating_mode operating_mode;
-+/* If nonzero, when in byte mode, don't split multibyte characters.  */
-+static int byte_mode_character_aware;
-+
-+/* If nonzero, the function for single byte locale is work
-+   if this program runs on multibyte locale. */
-+static int force_singlebyte_mode;
-+
- /* If true do not output lines containing no delimeter characters.
-    Otherwise, all such lines are printed.  This option is valid only
-    with field mode.  */
-@@ -132,6 +206,9 @@
- /* The delimeter character for field mode. */
- static unsigned char delim;
-+#if HAVE_WCHAR_H
-+static wchar_t wcdelim;
-+#endif
- /* True if the --output-delimiter=STRING option was specified.  */
- static bool output_delimiter_specified;
-@@ -205,7 +282,7 @@
-   -f, --fields=LIST       select only these fields;  also print any line\n\
-                             that contains no delimiter character, unless\n\
-                             the -s option is specified\n\
--  -n                      (ignored)\n\
-+  -n                      with -b: don't split multibyte characters\n\
- "), stdout);
-       fputs (_("\
-       --complement        complement the set of selected bytes, characters\n\
-@@ -360,7 +437,7 @@
-         in_digits = false;
-         /* Starting a range. */
-         if (dash_found)
--          FATAL_ERROR (_("invalid byte or field list"));
-+          FATAL_ERROR (_("invalid byte, character or field list"));
-         dash_found = true;
-         fieldstr++;
-@@ -385,14 +462,16 @@
-             if (value == 0)
-               {
-                 /* `n-'.  From `initial' to end of line. */
--                eol_range_start = initial;
-+                if (eol_range_start == 0 ||
-+                    (eol_range_start != 0 && eol_range_start > initial))
-+                  eol_range_start = initial;
-                 field_found = true;
-               }
-             else
-               {
-                 /* `m-n' or `-n' (1-n). */
-                 if (value < initial)
--                  FATAL_ERROR (_("invalid byte or field list"));
-+                  FATAL_ERROR (_("invalid byte, character or field list"));
-                 /* Is there already a range going to end of line? */
-                 if (eol_range_start != 0)
-@@ -465,6 +544,9 @@
-             if (operating_mode == byte_mode)
-               error (0, 0,
-                      _("byte offset %s is too large"), quote (bad_num));
-+            else if (operating_mode == character_mode)
-+              error (0, 0,
-+                     _("character offset %s is too large"), quote (bad_num));
-             else
-               error (0, 0,
-                      _("field number %s is too large"), quote (bad_num));
-@@ -475,7 +557,7 @@
-         fieldstr++;
-       }
-       else
--      FATAL_ERROR (_("invalid byte or field list"));
-+      FATAL_ERROR (_("invalid byte, character or field list"));
-     }
-   max_range_endpoint = 0;
-@@ -568,6 +650,63 @@
-     }
- }
-+#if HAVE_MBRTOWC
-+/* This function is in use for the following case.
-+
-+   1. Read from the stream STREAM, printing to standard output any selected
-+   characters. 
-+
-+   2. Read from stream STREAM, printing to standard output any selected bytes,
-+   without splitting multibyte characters.  */
-+ 
-+static void
-+cut_characters_or_cut_bytes_no_split (FILE *stream)
-+{
-+  int idx;            /* number of bytes or characters in the line so far. */
-+  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
-+  char *bufpos;               /* Next read position of BUF. */
-+  size_t buflen;      /* The length of the byte sequence in buf. */
-+  wint_t wc;          /* A gotten wide character. */
-+  size_t mblength;    /* The byte size of a multibyte character which shows
-+                         as same character as WC. */
-+  mbstate_t state;    /* State of the stream. */
-+  int convfail;               /* 1, when conversion is failed. Otherwise 0. */
-+
-+  idx = 0;
-+  buflen = 0;
-+  bufpos = buf;
-+  memset (&state, '\0', sizeof(mbstate_t));
-+
-+  while (1)
-+    {
-+      REFILL_BUFFER (buf, bufpos, buflen, stream);
-+
-+      GET_NEXT_WC_FROM_BUFFER (wc, bufpos, buflen, mblength, state, convfail);
-+
-+      if (wc == WEOF)
-+      {
-+        if (idx > 0)
-+          putchar ('\n');
-+        break;
-+      }
-+      else if (wc == L'\n')
-+      {
-+        putchar ('\n');
-+        idx = 0;
-+      }
-+      else
-+      {
-+        idx += (operating_mode == byte_mode) ? mblength : 1;
-+        if (print_kth (idx, NULL))
-+          fwrite (bufpos, mblength, sizeof(char), stdout);
-+      }
-+
-+      buflen -= mblength;
-+      bufpos += mblength;
-+    }
-+}
-+#endif
-+                 
- /* Read from stream STREAM, printing to standard output any selected fields.  */
- static void
-@@ -689,13 +828,192 @@
-     }
- }
-+#if HAVE_MBRTOWC
-+static void
-+cut_fields_mb (FILE *stream)
-+{
-+  int c;
-+  unsigned int field_idx;
-+  int found_any_selected_field;
-+  int buffer_first_field;
-+  int empty_input;
-+  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
-+  char *bufpos;               /* Next read position of BUF. */
-+  size_t buflen;      /* The length of the byte sequence in buf. */
-+  wint_t wc = 0;      /* A gotten wide character. */
-+  size_t mblength;    /* The byte size of a multibyte character which shows
-+                         as same character as WC. */
-+  mbstate_t state;    /* State of the stream. */
-+  int convfail;               /* 1, when conversion is failed. Otherwise 0. */
-+
-+  found_any_selected_field = 0;
-+  field_idx = 1;
-+  bufpos = buf;
-+  buflen = 0;
-+  memset (&state, '\0', sizeof(mbstate_t));
-+
-+  c = getc (stream);
-+  empty_input = (c == EOF);
-+  if (c != EOF)
-+    ungetc (c, stream);
-+  else
-+    wc = WEOF;
-+
-+  /* To support the semantics of the -s flag, we may have to buffer
-+     all of the first field to determine whether it is `delimited.'
-+     But that is unnecessary if all non-delimited lines must be printed
-+     and the first field has been selected, or if non-delimited lines
-+     must be suppressed and the first field has *not* been selected.
-+     That is because a non-delimited line has exactly one field.  */
-+  buffer_first_field = (suppress_non_delimited ^ !print_kth (1, NULL));
-+
-+  while (1)
-+    {
-+      if (field_idx == 1 && buffer_first_field)
-+      {
-+        int len = 0;
-+
-+        while (1)
-+          {
-+            REFILL_BUFFER (buf, bufpos, buflen, stream);
-+
-+            GET_NEXT_WC_FROM_BUFFER
-+              (wc, bufpos, buflen, mblength, state, convfail);
-+
-+            if (wc == WEOF)
-+              break;
-+
-+            field_1_buffer = xrealloc (field_1_buffer, len + mblength);
-+            memcpy (field_1_buffer + len, bufpos, mblength);
-+            len += mblength;
-+            buflen -= mblength;
-+            bufpos += mblength;
-+
-+            if (!convfail && (wc == L'\n' || wc == wcdelim))
-+              break;
-+          }
-+
-+        if (wc == WEOF)
-+          break;
-+
-+        /* If the first field extends to the end of line (it is not
-+           delimited) and we are printing all non-delimited lines,
-+           print this one.  */
-+        if (convfail || (!convfail && wc != wcdelim))
-+          {
-+            if (suppress_non_delimited)
-+              {
-+                /* Empty.     */
-+              }
-+            else
-+              {
-+                fwrite (field_1_buffer, sizeof (char), len, stdout);
-+                /* Make sure the output line is newline terminated.  */
-+                if (convfail || (!convfail && wc != L'\n'))
-+                  putchar ('\n');
-+              }
-+            continue;
-+          }
-+
-+        if (print_kth (1, NULL))
-+          {
-+            /* Print the field, but not the trailing delimiter.  */
-+            fwrite (field_1_buffer, sizeof (char), len - 1, stdout);
-+            found_any_selected_field = 1;
-+          }
-+        ++field_idx;
-+      }
-+
-+      if (wc != WEOF)
-+      {
-+        if (print_kth (field_idx, NULL))
-+          {
-+            if (found_any_selected_field)
-+              {
-+                fwrite (output_delimiter_string, sizeof (char),
-+                        output_delimiter_length, stdout);
-+              }
-+            found_any_selected_field = 1;
-+          }
-+
-+        while (1)
-+          {
-+            REFILL_BUFFER (buf, bufpos, buflen, stream);
-+
-+            GET_NEXT_WC_FROM_BUFFER
-+              (wc, bufpos, buflen, mblength, state, convfail);
-+
-+            if (wc == WEOF)
-+              break;
-+            else if (!convfail && (wc == wcdelim || wc == L'\n'))
-+              {
-+                buflen -= mblength;
-+                bufpos += mblength;
-+                break;
-+              }
-+
-+            if (print_kth (field_idx, NULL))
-+              fwrite (bufpos, mblength, sizeof(char), stdout);
-+
-+            buflen -= mblength;
-+            bufpos += mblength;
-+          }
-+      }
-+
-+      if ((!convfail || wc == L'\n') && buflen < 1)
-+      wc = WEOF;
-+
-+      if (!convfail && wc == wcdelim)
-+      ++field_idx;
-+      else if (wc == WEOF || (!convfail && wc == L'\n'))
-+      {
-+        if (found_any_selected_field
-+            || (!empty_input && !(suppress_non_delimited && field_idx == 1)))
-+          putchar ('\n');
-+        if (wc == WEOF)
-+          break;
-+        field_idx = 1;
-+        found_any_selected_field = 0;
-+      }
-+    }
-+}
-+#endif
-+
- static void
- cut_stream (FILE *stream)
- {
--  if (operating_mode == byte_mode)
--    cut_bytes (stream);
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1 && !force_singlebyte_mode)
-+    {
-+      switch (operating_mode)
-+      {
-+      case byte_mode:
-+        if (byte_mode_character_aware)
-+          cut_characters_or_cut_bytes_no_split (stream);
-+        else
-+          cut_bytes (stream);
-+        break;
-+
-+      case character_mode:
-+        cut_characters_or_cut_bytes_no_split (stream);
-+        break;
-+
-+      case field_mode:
-+        cut_fields_mb (stream);
-+        break;
-+
-+      default:
-+        abort ();
-+      }
-+    }
-   else
--    cut_fields (stream);
-+#endif
-+    {
-+      if (operating_mode == field_mode)
-+      cut_fields (stream);
-+      else
-+      cut_bytes (stream);
-+    }
- }
- /* Process file FILE to standard output.
-@@ -745,6 +1063,8 @@
-   bool ok;
-   bool delim_specified = false;
-   char *spec_list_string IF_LINT(= NULL);
-+  char mbdelim[MB_LEN_MAX + 1];
-+  size_t delimlen = 0;
-   initialize_main (&argc, &argv);
-   program_name = argv[0];
-@@ -767,7 +1087,6 @@
-       switch (optc)
-       {
-       case 'b':
--      case 'c':
-         /* Build the byte list. */
-         if (operating_mode != undefined_mode)
-           FATAL_ERROR (_("only one type of list may be specified"));
-@@ -775,6 +1094,14 @@
-         spec_list_string = optarg;
-         break;
-+      case 'c':
-+        /* Build the character list. */
-+        if (operating_mode != undefined_mode)
-+          FATAL_ERROR (_("only one type of list may be specified"));
-+        operating_mode = character_mode;
-+        spec_list_string = optarg;
-+        break;
-+
-       case 'f':
-         /* Build the field list. */
-         if (operating_mode != undefined_mode)
-@@ -786,10 +1113,35 @@
-       case 'd':
-         /* New delimiter. */
-         /* Interpret -d '' to mean `use the NUL byte as the delimiter.'  */
--        if (optarg[0] != '\0' && optarg[1] != '\0')
--          FATAL_ERROR (_("the delimiter must be a single character"));
--        delim = optarg[0];
--        delim_specified = true;
-+#if HAVE_MBRTOWC
-+          {
-+            if(MB_CUR_MAX > 1)
-+              {
-+                mbstate_t state;
-+
-+                memset (&state, '\0', sizeof(mbstate_t));
-+                delimlen = mbrtowc (&wcdelim, optarg, strnlen(optarg, MB_LEN_MAX), &state);
-+
-+                if (delimlen == (size_t)-1 || delimlen == (size_t)-2)
-+                  ++force_singlebyte_mode;
-+                else
-+                  {
-+                    delimlen = (delimlen < 1) ? 1 : delimlen;
-+                    if (wcdelim != L'\0' && *(optarg + delimlen) != '\0')
-+                      FATAL_ERROR (_("the delimiter must be a single character"));
-+                    memcpy (mbdelim, optarg, delimlen);
-+                  }
-+              }
-+
-+            if (MB_CUR_MAX <= 1 || force_singlebyte_mode)
-+#endif
-+              {
-+                if (optarg[0] != '\0' && optarg[1] != '\0')
-+                  FATAL_ERROR (_("the delimiter must be a single character"));
-+                delim = (unsigned char) optarg[0];
-+              }
-+          delim_specified = true;
-+        }
-         break;
-       case OUTPUT_DELIMITER_OPTION:
-@@ -802,6 +1154,7 @@
-         break;
-       case 'n':
-+        byte_mode_character_aware = 1;
-         break;
-       case 's':
-@@ -824,7 +1177,7 @@
-   if (operating_mode == undefined_mode)
-     FATAL_ERROR (_("you must specify a list of bytes, characters, or fields"));
--  if (delim != '\0' && operating_mode != field_mode)
-+  if (delim_specified && operating_mode != field_mode)
-     FATAL_ERROR (_("an input delimiter may be specified only\
-  when operating on fields"));
-@@ -851,15 +1204,34 @@
-     }
-   if (!delim_specified)
--    delim = '\t';
-+    {
-+      delim = '\t';
-+#ifdef HAVE_MBRTOWC
-+      wcdelim = L'\t';
-+      mbdelim[0] = '\t';
-+      mbdelim[1] = '\0';
-+      delimlen = 1;
-+#endif
-+    }
-   if (output_delimiter_string == NULL)
-     {
--      static char dummy[2];
--      dummy[0] = delim;
--      dummy[1] = '\0';
--      output_delimiter_string = dummy;
--      output_delimiter_length = 1;
-+#ifdef HAVE_MBRTOWC
-+      if (MB_CUR_MAX > 1 && !force_singlebyte_mode)
-+      {
-+        output_delimiter_string = xstrdup(mbdelim);
-+        output_delimiter_length = delimlen;
-+      }
-+
-+      if (MB_CUR_MAX <= 1 || force_singlebyte_mode)
-+#endif
-+      {
-+        static char dummy[2]; 
-+        dummy[0] = delim;
-+        dummy[1] = '\0';
-+        output_delimiter_string = dummy;
-+        output_delimiter_length = 1;
-+      }
-     }
-   if (optind == argc)
---- coreutils-5.93/src/pr.c.i18n       2005-09-16 08:50:33.000000000 +0100
-+++ coreutils-5.93/src/pr.c    2005-12-23 08:53:01.000000000 +0000
-@@ -313,6 +313,32 @@
- #include <getopt.h>
- #include <sys/types.h>
-+
-+/* Get MB_LEN_MAX.  */
-+#include <limits.h>
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+   installation; work around this configuration error.  */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX == 1
-+# define MB_LEN_MAX 16
-+#endif
-+
-+/* Get MB_CUR_MAX.  */
-+#include <stdlib.h>
-+
-+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.  */
-+/* Get mbstate_t, mbrtowc(), wcwidth().  */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+
-+/* Get iswprint(). -- for wcwidth().  */
-+#if HAVE_WCTYPE_H
-+# include <wctype.h>
-+#endif
-+#if !defined iswprint && !HAVE_ISWPRINT
-+# define iswprint(wc) 1
-+#endif
-+
- #include "system.h"
- #include "error.h"
- #include "hard-locale.h"
-@@ -324,6 +350,18 @@
- #include "strftime.h"
- #include "xstrtol.h"
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
-+#ifndef HAVE_DECL_WCWIDTH
-+"this configure-time declaration test was not run"
-+#endif
-+#if !HAVE_DECL_WCWIDTH
-+extern int wcwidth ();
-+#endif
-+
- /* The official name of this program (e.g., no `g' prefix).  */
- #define PROGRAM_NAME "pr"
-@@ -416,7 +454,20 @@
- #define NULLCOL (COLUMN *)0
--static int char_to_clump (char c);
-+/* Funtion pointers to switch functions for single byte locale or for
-+   multibyte locale. If multibyte functions do not exist in your sysytem,
-+   these pointers always point the function for single byte locale. */
-+static void (*print_char) (char c);
-+static int (*char_to_clump) (char c);
-+
-+/* Functions for single byte locale. */
-+static void print_char_single (char c);
-+static int char_to_clump_single (char c);
-+
-+/* Functions for multibyte locale. */
-+static void print_char_multi (char c);
-+static int char_to_clump_multi (char c);
-+
- static bool read_line (COLUMN *p);
- static bool print_page (void);
- static bool print_stored (COLUMN *p);
-@@ -426,6 +477,7 @@
- static void pad_across_to (int position);
- static void add_line_number (COLUMN *p);
- static void getoptarg (char *arg, char switch_char, char *character,
-+                     int *character_length, int *character_width,
-                      int *number);
- void usage (int status);
- static void print_files (int number_of_files, char **av);
-@@ -440,7 +492,6 @@
- static void pad_down (int lines);
- static void read_rest_of_line (COLUMN *p);
- static void skip_read (COLUMN *p, int column_number);
--static void print_char (char c);
- static void cleanup (void);
- static void print_sep_string (void);
- static void separator_string (const char *optarg_S);
-@@ -455,7 +506,7 @@
-    we store the leftmost columns contiguously in buff.
-    To print a line from buff, get the index of the first character
-    from line_vector[i], and print up to line_vector[i + 1]. */
--static char *buff;
-+static unsigned char *buff;
- /* Index of the position in buff where the next character
-    will be stored. */
-@@ -559,7 +610,7 @@
- static bool untabify_input = false;
- /* (-e) The input tab character. */
--static char input_tab_char = '\t';
-+static char input_tab_char[MB_LEN_MAX] = "\t";
- /* (-e) Tabstops are at chars_per_tab, 2*chars_per_tab, 3*chars_per_tab, ...
-    where the leftmost column is 1. */
-@@ -569,7 +620,10 @@
- static bool tabify_output = false;
- /* (-i) The output tab character. */
--static char output_tab_char = '\t';
-+static char output_tab_char[MB_LEN_MAX] = "\t";
-+
-+/* (-i) The byte length of output tab character. */
-+static int output_tab_char_length = 1;
- /* (-i) The width of the output tab. */
- static int chars_per_output_tab = 8;
-@@ -643,7 +697,13 @@
- static bool numbered_lines = false;
- /* (-n) Character which follows each line number. */
--static char number_separator = '\t';
-+static char number_separator[MB_LEN_MAX] = "\t";
-+
-+/* (-n) The byte length of the character which follows each line number. */
-+static int number_separator_length = 1;
-+
-+/* (-n) The character width of the character which follows each line number. */
-+static int number_separator_width = 0;
- /* (-n) line counting starts with 1st line of input file (not with 1st
-    line of 1st page printed). */
-@@ -696,6 +756,7 @@
-    -a|COLUMN|-m is a `space' and with the -J option a `tab'. */
- static char *col_sep_string = "";
- static int col_sep_length = 0;
-+static int col_sep_width = 0;
- static char *column_separator = " ";
- static char *line_separator = "\t";
-@@ -852,6 +913,13 @@
-   col_sep_length = (int) strlen (optarg_S);
-   col_sep_string = xmalloc (col_sep_length + 1);
-   strcpy (col_sep_string, optarg_S);
-+
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    col_sep_width = mbswidth (col_sep_string, 0);
-+  else
-+#endif
-+    col_sep_width = col_sep_length;
- }
- int
-@@ -877,6 +945,21 @@
-   atexit (close_stdout);
-+/* Define which functions are used, the ones for single byte locale or the ones
-+   for multibyte locale. */
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    {
-+      print_char = print_char_multi;
-+      char_to_clump = char_to_clump_multi;
-+    }
-+  else
-+#endif
-+    {
-+      print_char = print_char_single;
-+      char_to_clump = char_to_clump_single;
-+    }
-+
-   n_files = 0;
-   file_names = (argc > 1
-               ? xmalloc ((argc - 1) * sizeof (char *))
-@@ -949,8 +1032,12 @@
-         break;
-       case 'e':
-         if (optarg)
--          getoptarg (optarg, 'e', &input_tab_char,
--                     &chars_per_input_tab);
-+          {
-+            int dummy_length, dummy_width;
-+
-+            getoptarg (optarg, 'e', input_tab_char, &dummy_length,
-+                       &dummy_width, &chars_per_input_tab);
-+          }
-         /* Could check tab width > 0. */
-         untabify_input = true;
-         break;
-@@ -963,8 +1050,12 @@
-         break;
-       case 'i':
-         if (optarg)
--          getoptarg (optarg, 'i', &output_tab_char,
--                     &chars_per_output_tab);
-+          {
-+            int dummy_width;
-+
-+            getoptarg (optarg, 'i', output_tab_char, &output_tab_char_length,
-+                       &dummy_width, &chars_per_output_tab);
-+          }
-         /* Could check tab width > 0. */
-         tabify_output = true;
-         break;
-@@ -991,8 +1082,8 @@
-       case 'n':
-         numbered_lines = true;
-         if (optarg)
--          getoptarg (optarg, 'n', &number_separator,
--                     &chars_per_number);
-+          getoptarg (optarg, 'n', number_separator, &number_separator_length,
-+                     &number_separator_width, &chars_per_number);
-         break;
-       case 'N':
-         skip_count = false;
-@@ -1031,7 +1122,7 @@
-         old_s = false;
-         /* Reset an additional input of -s, -S dominates -s */
-         col_sep_string = "";
--        col_sep_length = 0;
-+        col_sep_length = col_sep_width = 0;
-         use_col_separator = true;
-         if (optarg)
-           separator_string (optarg);
-@@ -1188,10 +1279,45 @@
-    a number. */
- static void
--getoptarg (char *arg, char switch_char, char *character, int *number)
-+getoptarg (char *arg, char switch_char, char *character, int *character_length,
-+         int *character_width, int *number)
- {
-   if (!ISDIGIT (*arg))
--    *character = *arg++;
-+    {
-+#ifdef HAVE_MBRTOWC
-+      if (MB_CUR_MAX > 1)     /* for multibyte locale. */
-+      {
-+        wchar_t wc;
-+        size_t mblength;
-+        int width;
-+        mbstate_t state = {'\0'};
-+
-+        mblength = mbrtowc (&wc, arg, strnlen(arg, MB_LEN_MAX), &state);
-+
-+        if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+          {
-+            *character_length = 1;
-+            *character_width = 1;
-+          }
-+        else
-+          {
-+            *character_length = (mblength < 1) ? 1 : mblength;
-+            width = wcwidth (wc);
-+            *character_width = (width < 0) ? 0 : width;
-+          }
-+
-+        strncpy (character, arg, *character_length);
-+        arg += *character_length;
-+      }
-+      else                    /* for single byte locale. */
-+#endif
-+      {
-+        *character = *arg++;
-+        *character_length = 1;
-+        *character_width = 1;
-+      }
-+    }
-+
-   if (*arg)
-     {
-       long int tmp_long;
-@@ -1256,7 +1382,7 @@
-         else
-           col_sep_string = column_separator;
--        col_sep_length = 1;
-+        col_sep_length = col_sep_width = 1;
-         use_col_separator = true;
-       }
-       /* It's rather pointless to define a TAB separator with column
-@@ -1288,11 +1414,11 @@
-            TAB_WIDTH (chars_per_input_tab, chars_per_number);   */
-       /* Estimate chars_per_text without any margin and keep it constant. */
--      if (number_separator == '\t')
-+      if (number_separator[0] == '\t')
-       number_width = chars_per_number +
-         TAB_WIDTH (chars_per_default_tab, chars_per_number);
-       else
--      number_width = chars_per_number + 1;
-+      number_width = chars_per_number + number_separator_width;
-       /* The number is part of the column width unless we are
-        printing files in parallel. */
-@@ -1307,7 +1433,7 @@
-     }
-   chars_per_column = (chars_per_line - chars_used_by_number -
--                   (columns - 1) * col_sep_length) / columns;
-+                   (columns - 1) * col_sep_width) / columns;
-   if (chars_per_column < 1)
-     error (EXIT_FAILURE, 0, _("page width too narrow"));
-@@ -1432,7 +1558,7 @@
-   /* Enlarge p->start_position of first column to use the same form of
-      padding_not_printed with all columns. */
--  h = h + col_sep_length;
-+  h = h + col_sep_width;
-   /* This loop takes care of all but the rightmost column. */
-@@ -1466,7 +1592,7 @@
-       }
-       else
-       {
--        h = h_next + col_sep_length;
-+        h = h_next + col_sep_width;
-         h_next = h + chars_per_column;
-       }
-     }
-@@ -1756,9 +1882,9 @@
- align_column (COLUMN *p)
- {
-   padding_not_printed = p->start_position;
--  if (padding_not_printed - col_sep_length > 0)
-+  if (padding_not_printed - col_sep_width > 0)
-     {
--      pad_across_to (padding_not_printed - col_sep_length);
-+      pad_across_to (padding_not_printed - col_sep_width);
-       padding_not_printed = ANYWHERE;
-     }
-@@ -2029,13 +2155,13 @@
-       /* May be too generous. */
-       buff = X2REALLOC (buff, &buff_allocated);
-     }
--  buff[buff_current++] = c;
-+  buff[buff_current++] = (unsigned char) c;
- }
- static void
- add_line_number (COLUMN *p)
- {
--  int i;
-+  int i, j;
-   char *s;
-   int left_cut;
-@@ -2058,22 +2184,24 @@
-       /* Tabification is assumed for multiple columns, also for n-separators,
-        but `default n-separator = TAB' hasn't been given priority over
-        equal column_width also specified by POSIX. */
--      if (number_separator == '\t')
-+      if (number_separator[0] == '\t')
-         {
-           i = number_width - chars_per_number;
-           while (i-- > 0)
-           (p->char_func) (' ');
-         }
-       else
--        (p->char_func) (number_separator);
-+      for (j = 0; j < number_separator_length; j++)
-+        (p->char_func) (number_separator[j]);
-     }
-   else
-     /* To comply with POSIX, we avoid any expansion of default TAB
-        separator with a single column output. No column_width requirement
-        has to be considered. */
-     {
--      (p->char_func) (number_separator);
--      if (number_separator == '\t')
-+      for (j = 0; j < number_separator_length; j++)
-+      (p->char_func) (number_separator[j]);
-+      if (number_separator[0] == '\t')
-         output_position = POS_AFTER_TAB (chars_per_output_tab,
-                         output_position);
-     }
-@@ -2234,7 +2362,7 @@
-   while (goal - h_old > 1
-        && (h_new = POS_AFTER_TAB (chars_per_output_tab, h_old)) <= goal)
-     {
--      putchar (output_tab_char);
-+      fwrite (output_tab_char, sizeof(char), output_tab_char_length, stdout);
-       h_old = h_new;
-     }
-   while (++h_old <= goal)
-@@ -2254,6 +2382,7 @@
- {
-   char *s;
-   int l = col_sep_length;
-+  int not_space_flag;
-   s = col_sep_string;
-@@ -2267,6 +2396,7 @@
-     {
-       for (; separators_not_printed > 0; --separators_not_printed)
-       {
-+        not_space_flag = 0;
-         while (l-- > 0)
-           {
-             /* 3 types of sep_strings: spaces only, spaces and chars,
-@@ -2280,12 +2410,15 @@
-               }
-             else
-               {
-+                not_space_flag = 1;
-                 if (spaces_not_printed > 0)
-                   print_white_space ();
-                 putchar (*s++);
--                ++output_position;
-               }
-           }
-+        if (not_space_flag)
-+          output_position += col_sep_width;
-+
-           /* sep_string ends with some spaces */
-         if (spaces_not_printed > 0)
-           print_white_space ();
-@@ -2313,7 +2446,7 @@
-    required number of tabs and spaces. */
- static void
--print_char (char c)
-+print_char_single (char c)
- {
-   if (tabify_output)
-     {
-@@ -2337,6 +2470,74 @@
-   putchar (c);
- }
-+#ifdef HAVE_MBRTOWC
-+static void
-+print_char_multi (char c)
-+{
-+  static size_t mbc_pos = 0;
-+  static unsigned char mbc[MB_LEN_MAX] = {'\0'};
-+  static mbstate_t state = {'\0'};
-+  mbstate_t state_bak;
-+  wchar_t wc;
-+  size_t mblength;
-+  int width;
-+
-+  if (tabify_output)
-+    {
-+      state_bak = state;
-+      mbc[mbc_pos++] = (unsigned char)c;
-+      mblength = mbrtowc (&wc, mbc, mbc_pos, &state);
-+
-+      while (mbc_pos > 0)
-+      {
-+        switch (mblength)
-+          {
-+          case (size_t)-2:
-+            state = state_bak;
-+            return;
-+
-+          case (size_t)-1:
-+            state = state_bak;
-+            ++output_position;
-+            putchar (mbc[0]);
-+            memmove (mbc, mbc + 1, MB_CUR_MAX - 1);
-+            --mbc_pos;
-+            break;
-+
-+          case 0:
-+            mblength = 1;
-+
-+          default:
-+            if (wc == L' ')
-+              {
-+                memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength);
-+                --mbc_pos;
-+                ++spaces_not_printed;
-+                return;
-+              }
-+            else if (spaces_not_printed > 0)
-+              print_white_space ();
-+
-+            /* Nonprintables are assumed to have width 0, except L'\b'. */
-+            if ((width = wcwidth (wc)) < 1)
-+              {
-+                if (wc == L'\b')
-+                  --output_position;
-+              }
-+            else
-+              output_position += width;
-+
-+            fwrite (mbc, sizeof(char), mblength, stdout);
-+            memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength);
-+            mbc_pos -= mblength;
-+          }
-+      }
-+      return;
-+    }
-+  putchar (c);
-+}
-+#endif
-+
- /* Skip to page PAGE before printing.
-    PAGE may be larger than total number of pages. */
-@@ -2517,9 +2718,9 @@
-         align_empty_cols = false;
-       }
--      if (padding_not_printed - col_sep_length > 0)
-+      if (padding_not_printed - col_sep_width > 0)
-       {
--        pad_across_to (padding_not_printed - col_sep_length);
-+        pad_across_to (padding_not_printed - col_sep_width);
-         padding_not_printed = ANYWHERE;
-       }
-@@ -2620,9 +2821,9 @@
-       }
-     }
--  if (padding_not_printed - col_sep_length > 0)
-+  if (padding_not_printed - col_sep_width > 0)
-     {
--      pad_across_to (padding_not_printed - col_sep_length);
-+      pad_across_to (padding_not_printed - col_sep_width);
-       padding_not_printed = ANYWHERE;
-     }
-@@ -2635,8 +2836,8 @@
-   if (spaces_not_printed == 0)
-     {
-       output_position = p->start_position + end_vector[line];
--      if (p->start_position - col_sep_length == chars_per_margin)
--      output_position -= col_sep_length;
-+      if (p->start_position - col_sep_width == chars_per_margin)
-+      output_position -= col_sep_width;
-     }
-   return true;
-@@ -2655,7 +2856,7 @@
-    number of characters is 1.) */
- static int
--char_to_clump (char c)
-+char_to_clump_single (char c)
- {
-   unsigned char uc = c;
-   char *s = clump_buff;
-@@ -2665,10 +2866,10 @@
-   int chars;
-   int chars_per_c = 8;
--  if (c == input_tab_char)
-+  if (c == input_tab_char[0])
-     chars_per_c = chars_per_input_tab;
--  if (c == input_tab_char || c == '\t')
-+  if (c == input_tab_char[0] || c == '\t')
-     {
-       width = TAB_WIDTH (chars_per_c, input_position);
-@@ -2739,6 +2940,154 @@
-   return chars;
- }
-+#ifdef HAVE_MBRTOWC
-+static int
-+char_to_clump_multi (char c)
-+{
-+  static size_t mbc_pos = 0;
-+  static char mbc[MB_LEN_MAX] = {'\0'};
-+  static mbstate_t state = {'\0'};
-+  mbstate_t state_bak;
-+  wchar_t wc;
-+  size_t mblength;
-+  int wc_width;
-+  register int *s = clump_buff;
-+  register int i, j;
-+  char esc_buff[4];
-+  int width;
-+  int chars;
-+  int chars_per_c = 8;
-+
-+  state_bak = state;
-+  mbc[mbc_pos++] = c;
-+  mblength = mbrtowc (&wc, mbc, mbc_pos, &state);
-+
-+  width = 0;
-+  chars = 0;
-+  while (mbc_pos > 0)
-+    {
-+      switch (mblength)
-+      {
-+      case (size_t)-2:
-+        state = state_bak;
-+        return 0;
-+
-+      case (size_t)-1:
-+        state = state_bak;
-+        mblength = 1;
-+
-+        if (use_esc_sequence || use_cntrl_prefix)
-+          {
-+            width = +4;
-+            chars = +4;
-+            *s++ = '\\';
-+            sprintf (esc_buff, "%03o", mbc[0]);
-+            for (i = 0; i <= 2; ++i)
-+              *s++ = (int) esc_buff[i];
-+          }
-+        else
-+          {
-+            width += 1;
-+            chars += 1;
-+            *s++ = mbc[0];
-+          }
-+        break;
-+
-+      case 0:
-+        mblength = 1;
-+              /* Fall through */
-+
-+      default:
-+        if (memcmp (mbc, input_tab_char, mblength) == 0)
-+          chars_per_c = chars_per_input_tab;
-+
-+        if (memcmp (mbc, input_tab_char, mblength) == 0 || c == '\t')
-+          {
-+            int  width_inc;
-+
-+            width_inc = TAB_WIDTH (chars_per_c, input_position);
-+            width += width_inc;
-+
-+            if (untabify_input)
-+              {
-+                for (i = width_inc; i; --i)
-+                  *s++ = ' ';
-+                chars += width_inc;
-+              }
-+            else
-+              {
-+                for (i = 0; i <  mblength; i++)
-+                  *s++ = mbc[i];
-+                chars += mblength;
-+              }
-+          }
-+        else if ((wc_width = wcwidth (wc)) < 1)
-+          {
-+            if (use_esc_sequence)
-+              {
-+                for (i = 0; i < mblength; i++)
-+                  {
-+                    width += 4;
-+                    chars += 4;
-+                    *s++ = '\\';
-+                    sprintf (esc_buff, "%03o", c);
-+                    for (j = 0; j <= 2; ++j)
-+                      *s++ = (int) esc_buff[j];
-+                  }
-+              }
-+            else if (use_cntrl_prefix)
-+              {
-+                if (wc < 0200)
-+                  {
-+                    width += 2;
-+                    chars += 2;
-+                    *s++ = '^';
-+                    *s++ = wc ^ 0100;
-+                  }
-+                else
-+                  {
-+                    for (i = 0; i < mblength; i++)
-+                      {
-+                        width += 4;
-+                        chars += 4;
-+                        *s++ = '\\';
-+                        sprintf (esc_buff, "%03o", c);
-+                        for (j = 0; j <= 2; ++j)
-+                          *s++ = (int) esc_buff[j];
-+                      }
-+                  }
-+              }
-+            else if (wc == L'\b')
-+              {
-+                width += -1;
-+                chars += 1;
-+                *s++ = c;
-+              }
-+            else
-+              {
-+                width += 0;
-+                chars += mblength;
-+                for (i = 0; i < mblength; i++)
-+                  *s++ = mbc[i];
-+              }
-+          }
-+        else
-+          {
-+            width += wc_width;
-+            chars += mblength;
-+            for (i = 0; i < mblength; i++)
-+              *s++ = mbc[i];
-+          }
-+      }
-+      memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength);
-+      mbc_pos -= mblength;
-+    }
-+
-+  input_position += width;
-+  return chars;
-+}
-+#endif
-+
- /* We've just printed some files and need to clean up things before
-    looking for more options and printing the next batch of files.
---- coreutils-5.93/src/uniq.c.i18n     2005-07-05 07:32:54.000000000 +0100
-+++ coreutils-5.93/src/uniq.c  2005-12-23 08:53:01.000000000 +0000
-@@ -23,6 +23,16 @@
- #include <getopt.h>
- #include <sys/types.h>
-+/* Get mbstate_t, mbrtowc(). */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+
-+/* Get isw* functions. */
-+#if HAVE_WCTYPE_H
-+# include <wctype.h>
-+#endif
-+
- #include "system.h"
- #include "argmatch.h"
- #include "linebuffer.h"
-@@ -32,7 +42,19 @@
- #include "quote.h"
- #include "xmemcoll.h"
- #include "xstrtol.h"
--#include "memcasecmp.h"
-+#include "xmemcoll.h"
-+
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+   installation; work around this configuration error.  */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
-+# define MB_LEN_MAX 16
-+#endif
-+
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
- /* The official name of this program (e.g., no `g' prefix).  */
- #define PROGRAM_NAME "uniq"
-@@ -109,6 +131,10 @@
- /* Select whether/how to delimit groups of duplicate lines.  */
- static enum delimit_method delimit_groups;
-+/* Function pointers. */
-+static char *
-+(*find_field) (struct linebuffer *line);
-+
- static struct option const longopts[] =
- {
-   {"count", no_argument, NULL, 'c'},
-@@ -189,7 +215,7 @@
-    return a pointer to the beginning of the line's field to be compared. */
- static char *
--find_field (const struct linebuffer *line)
-+find_field_uni (struct linebuffer *line)
- {
-   size_t count;
-   char *lp = line->buffer;
-@@ -210,6 +236,83 @@
-   return lp + i;
- }
-+#if HAVE_MBRTOWC
-+
-+# define MBCHAR_TO_WCHAR(WC, MBLENGTH, LP, POS, SIZE, STATEP, CONVFAIL)  \
-+  do                                                                  \
-+    {                                                                 \
-+      mbstate_t state_bak;                                            \
-+                                                                      \
-+      CONVFAIL = 0;                                                   \
-+      state_bak = *STATEP;                                            \
-+                                                                      \
-+      MBLENGTH = mbrtowc (&WC, LP + POS, SIZE - POS, STATEP);         \
-+                                                                      \
-+      switch (MBLENGTH)                                                       \
-+      {                                                               \
-+      case (size_t)-2:                                                \
-+      case (size_t)-1:                                                \
-+        *STATEP = state_bak;                                          \
-+        CONVFAIL++;                                                   \
-+        /* Fall through */                                            \
-+      case 0:                                                         \
-+        MBLENGTH = 1;                                                 \
-+      }                                                               \
-+    }                                                                 \
-+  while (0)
-+
-+static char *
-+find_field_multi (struct linebuffer *line)
-+{
-+  size_t count;
-+  char *lp = line->buffer;
-+  size_t size = line->length - 1;
-+  size_t pos;
-+  size_t mblength;
-+  wchar_t wc;
-+  mbstate_t *statep;
-+  int convfail;
-+
-+  pos = 0;
-+  statep = &(line->state);
-+
-+  /* skip fields. */
-+  for (count = 0; count < skip_fields && pos < size; count++)
-+    {
-+      while (pos < size)
-+      {
-+        MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail);
-+ 
-+        if (convfail || !iswblank (wc))
-+          {
-+            pos += mblength;
-+            break;
-+          }
-+        pos += mblength;
-+      }
-+
-+      while (pos < size)
-+      {
-+        MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail);
-+
-+        if (!convfail && iswblank (wc))
-+          break;
-+
-+        pos += mblength;
-+      }
-+    }
-+
-+  /* skip fields. */
-+  for (count = 0; count < skip_chars && pos < size; count++)
-+    {
-+      MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail);
-+      pos += mblength;
-+    }
-+
-+  return lp + pos;
-+}
-+#endif
-+
- /* Return false if two strings OLD and NEW match, true if not.
-    OLD and NEW point not to the beginnings of the lines
-    but rather to the beginnings of the fields to compare.
-@@ -218,6 +321,8 @@
- static bool
- different (char *old, char *new, size_t oldlen, size_t newlen)
- {
-+  char *copy_old, *copy_new;
-+
-   if (check_chars < oldlen)
-     oldlen = check_chars;
-   if (check_chars < newlen)
-@@ -225,14 +330,92 @@
-   if (ignore_case)
-     {
--      /* FIXME: This should invoke strcoll somehow.  */
--      return oldlen != newlen || memcasecmp (old, new, oldlen);
-+      size_t i;
-+
-+      copy_old = alloca (oldlen + 1);
-+      copy_new = alloca (oldlen + 1);
-+
-+      for (i = 0; i < oldlen; i++)
-+      {
-+        copy_old[i] = toupper (old[i]);
-+        copy_new[i] = toupper (new[i]);
-+      }
-     }
--  else if (hard_LC_COLLATE)
--    return xmemcoll (old, oldlen, new, newlen) != 0;
-   else
--    return oldlen != newlen || memcmp (old, new, oldlen);
-+    {
-+      copy_old = (char *)old;
-+      copy_new = (char *)new;
-+    }
-+
-+  return xmemcoll (copy_old, oldlen, copy_new, newlen);
-+}
-+
-+#if HAVE_MBRTOWC
-+static int
-+different_multi (const char *old, const char *new, size_t oldlen, size_t newlen, mbstate_t oldstate, mbstate_t newstate)
-+{
-+  size_t i, j, chars;
-+  const char *str[2];
-+  char *copy[2];
-+  size_t len[2];
-+  mbstate_t state[2];
-+  size_t mblength;
-+  wchar_t wc, uwc;
-+  mbstate_t state_bak;
-+
-+  str[0] = old;
-+  str[1] = new;
-+  len[0] = oldlen;
-+  len[1] = newlen;
-+  state[0] = oldstate;
-+  state[1] = newstate;
-+
-+  for (i = 0; i < 2; i++)
-+    {
-+      copy[i] = alloca (len[i] + 1);
-+
-+      for (j = 0, chars = 0; j < len[i] && chars < check_chars; chars++)
-+      {
-+        state_bak = state[i];
-+        mblength = mbrtowc (&wc, str[i] + j, len[i] - j, &(state[i]));
-+
-+        switch (mblength)
-+          {
-+          case (size_t)-1:
-+          case (size_t)-2:
-+            state[i] = state_bak;
-+            /* Fall through */
-+          case 0:
-+            mblength = 1;
-+            break;
-+
-+          default:
-+            if (ignore_case)
-+              {
-+                uwc = towupper (wc);
-+
-+                if (uwc != wc)
-+                  {
-+                    mbstate_t state_wc;
-+
-+                    memset (&state_wc, '\0', sizeof(mbstate_t));
-+                    wcrtomb (copy[i] + j, uwc, &state_wc);
-+                  }
-+                else
-+                  memcpy (copy[i] + j, str[i] + j, mblength);
-+              }
-+            else
-+              memcpy (copy[i] + j, str[i] + j, mblength);
-+          }
-+        j += mblength;
-+      }
-+      copy[i][j] = '\0';
-+      len[i] = j;
-+    }
-+
-+  return xmemcoll (copy[0], len[0], copy[1], len[1]);
- }
-+#endif
- /* Output the line in linebuffer LINE to standard output
-    provided that the switches say it should be output.
-@@ -286,15 +469,43 @@
-     {
-       char *prevfield IF_LINT (= NULL);
-       size_t prevlen IF_LINT (= 0);
-+#if HAVE_MBRTOWC
-+      mbstate_t prevstate;
-+
-+      memset (&prevstate, '\0', sizeof (mbstate_t));
-+#endif
-       while (!feof (stdin))
-       {
-         char *thisfield;
-         size_t thislen;
-+#if HAVE_MBRTOWC
-+        mbstate_t thisstate;
-+#endif
-+
-         if (readlinebuffer (thisline, stdin) == 0)
-           break;
-         thisfield = find_field (thisline);
-         thislen = thisline->length - 1 - (thisfield - thisline->buffer);
-+#if HAVE_MBRTOWC
-+        if (MB_CUR_MAX > 1)
-+            {
-+            thisstate = thisline->state;
-+
-+            if (prevline->length == 0 || different_multi
-+              (thisfield, prevfield, thislen, prevlen, thisstate, prevstate))
-+              {
-+                fwrite (thisline->buffer, sizeof (char),
-+                        thisline->length, stdout);
-+
-+                SWAP_LINES (prevline, thisline);
-+                prevfield = thisfield;
-+                prevlen = thislen;
-+                prevstate = thisstate;
-+              }
-+          }
-+      else
-+#endif
-         if (prevline->length == 0
-             || different (thisfield, prevfield, thislen, prevlen))
-           {
-@@ -313,17 +524,26 @@
-       size_t prevlen;
-       uintmax_t match_count = 0;
-       bool first_delimiter = true;
-+#if HAVE_MBRTOWC
-+      mbstate_t prevstate;
-+#endif
-       if (readlinebuffer (prevline, stdin) == 0)
-       goto closefiles;
-       prevfield = find_field (prevline);
-       prevlen = prevline->length - 1 - (prevfield - prevline->buffer);
-+#if HAVE_MBRTOWC
-+      prevstate = prevline->state;
-+#endif
-       while (!feof (stdin))
-       {
-         bool match;
-         char *thisfield;
-         size_t thislen;
-+#if HAVE_MBRTOWC
-+        mbstate_t thisstate;
-+#endif
-         if (readlinebuffer (thisline, stdin) == 0)
-           {
-             if (ferror (stdin))
-@@ -332,6 +552,15 @@
-           }
-         thisfield = find_field (thisline);
-         thislen = thisline->length - 1 - (thisfield - thisline->buffer);
-+#if HAVE_MBRTOWC
-+        if (MB_CUR_MAX > 1)
-+          {
-+              thisstate = thisline->state;
-+              match = !different_multi (thisfield, prevfield,
-+                                thislen, prevlen, thisstate, prevstate);
-+            }
-+        else
-+#endif
-         match = !different (thisfield, prevfield, thislen, prevlen);
-         match_count += match;
-@@ -364,6 +593,9 @@
-             SWAP_LINES (prevline, thisline);
-             prevfield = thisfield;
-             prevlen = thislen;
-+#if HAVE_MBRTOWC
-+            prevstate = thisstate;
-+#endif
-             if (!match)
-               match_count = 0;
-           }
-@@ -408,6 +640,19 @@
-   atexit (close_stdout);
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    {
-+      find_field = find_field_multi;
-+    }
-+  else
-+#endif
-+    {
-+      find_field = find_field_uni;
-+    }
-+
-+
-+
-   skip_chars = 0;
-   skip_fields = 0;
-   check_chars = SIZE_MAX;
---- coreutils-5.93/src/expand.c.i18n   2005-08-12 08:16:25.000000000 +0100
-+++ coreutils-5.93/src/expand.c        2005-12-23 08:53:01.000000000 +0000
-@@ -38,11 +38,28 @@
- #include <stdio.h>
- #include <getopt.h>
- #include <sys/types.h>
-+
-+/* Get mbstate_t, mbrtowc(), wcwidth(). */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+
- #include "system.h"
- #include "error.h"
- #include "quote.h"
- #include "xstrndup.h"
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+   installation; work around this configuration error.  */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
-+# define MB_LEN_MAX 16
-+#endif
-+
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
- /* The official name of this program (e.g., no `g' prefix).  */
- #define PROGRAM_NAME "expand"
-@@ -182,6 +199,7 @@
-             stops = num_start + len - 1;
-           }
-       }
-+
-       else
-       {
-         error (0, 0, _("tab size contains invalid character(s): %s"),
-@@ -364,6 +382,142 @@
-     }
- }
-+#if HAVE_MBRTOWC
-+static void
-+expand_multibyte (void)
-+{
-+  FILE *fp;                   /* Input strem. */
-+  mbstate_t i_state;          /* Current shift state of the input stream. */
-+  mbstate_t i_state_bak;      /* Back up the I_STATE. */
-+  mbstate_t o_state;          /* Current shift state of the output stream. */
-+  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
-+  char *bufpos;                       /* Next read position of BUF. */
-+  size_t buflen = 0;          /* The length of the byte sequence in buf. */
-+  wchar_t wc;                 /* A gotten wide character. */
-+  size_t mblength;            /* The byte size of a multibyte character
-+                                 which shows as same character as WC. */
-+  int tab_index = 0;          /* Index in `tab_list' of next tabstop. */
-+  int column = 0;             /* Column on screen of the next char. */
-+  int next_tab_column;                /* Column the next tab stop is on. */
-+  int convert = 1;            /* If nonzero, perform translations. */
-+
-+  fp = next_file ((FILE *) NULL);
-+  if (fp == NULL)
-+    return;
-+
-+  memset (&o_state, '\0', sizeof(mbstate_t));
-+  memset (&i_state, '\0', sizeof(mbstate_t));
-+
-+  for (;;)
-+    {
-+      /* Refill the buffer BUF. */
-+      if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp))
-+      {
-+        memmove (buf, bufpos, buflen);
-+        buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp);
-+        bufpos = buf;
-+      }
-+
-+      /* No character is left in BUF. */
-+      if (buflen < 1)
-+      {
-+        fp = next_file (fp);
-+
-+        if (fp == NULL)
-+          break;              /* No more files. */
-+        else
-+          {
-+            memset (&i_state, '\0', sizeof(mbstate_t));
-+            continue;
-+          }
-+      }
-+
-+      /* Get a wide character. */
-+      i_state_bak = i_state;
-+      mblength = mbrtowc (&wc, bufpos, buflen, &i_state);
-+
-+      switch (mblength)
-+      {
-+      case (size_t)-1:        /* illegal byte sequence. */
-+      case (size_t)-2:
-+        mblength = 1;
-+        i_state = i_state_bak;
-+        if (convert)
-+          {
-+            ++column;
-+            if (convert_entire_line == 0)
-+              convert = 0;
-+          }
-+        putchar (*bufpos);
-+        break;
-+
-+      case 0:         /* null. */
-+        mblength = 1;
-+        if (convert && convert_entire_line == 0)
-+          convert = 0;
-+        putchar ('\0');
-+        break;
-+
-+      default:
-+        if (wc == L'\n')   /* LF. */
-+          {
-+            tab_index = 0;
-+            column = 0;
-+            convert = 1;
-+            putchar ('\n');
-+          }
-+        else if (wc == L'\t' && convert)      /* Tab. */
-+          {
-+            if (tab_size == 0)
-+              {
-+                /* Do not let tab_index == first_free_tab;
-+                   stop when it is 1 less. */
-+                while (tab_index < first_free_tab - 1
-+                    && column >= tab_list[tab_index])
-+                  tab_index++;
-+                next_tab_column = tab_list[tab_index];
-+                if (tab_index < first_free_tab - 1)
-+                  tab_index++;
-+                if (column >= next_tab_column)
-+                  next_tab_column = column + 1;
-+              }
-+            else
-+              next_tab_column = column + tab_size - column % tab_size;
-+
-+            while (column < next_tab_column)
-+              {
-+                putchar (' ');
-+                ++column;
-+              }
-+          }
-+        else  /* Others. */
-+          {
-+            if (convert)
-+              {
-+                if (wc == L'\b')
-+                  {
-+                    if (column > 0)
-+                      --column;
-+                  }
-+                else
-+                  {
-+                    int width;                /* The width of WC. */
-+
-+                    width = wcwidth (wc);
-+                    column += (width > 0) ? width : 0;
-+                    if (convert_entire_line == 0)
-+                      convert = 0;
-+                  }
-+              }
-+            fwrite (bufpos, sizeof(char), mblength, stdout);
-+          }
-+      }
-+      buflen -= mblength;
-+      bufpos += mblength;
-+    }
-+}
-+#endif
-+
- int
- main (int argc, char **argv)
- {
-@@ -428,7 +582,12 @@
-   file_list = (optind < argc ? &argv[optind] : stdin_argv);
--  expand ();
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    expand_multibyte ();
-+  else
-+#endif
-+    expand ();
-   if (have_read_stdin && fclose (stdin) != 0)
-     error (EXIT_FAILURE, errno, "-");
---- coreutils-5.93/src/fold.c.i18n     2005-08-12 08:29:38.000000000 +0100
-+++ coreutils-5.93/src/fold.c  2005-12-23 08:53:01.000000000 +0000
-@@ -23,11 +23,33 @@
- #include <getopt.h>
- #include <sys/types.h>
-+/* Get mbstate_t, mbrtowc(), wcwidth().  */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+
-+/* Get iswprint(), iswblank(), wcwidth().  */
-+#if HAVE_WCTYPE_H
-+# include <wctype.h>
-+#endif
-+
- #include "system.h"
- #include "error.h"
- #include "quote.h"
- #include "xstrtol.h"
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+      installation; work around this configuration error.  */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
-+# undef MB_LEN_MAX
-+# define MB_LEN_MAX 16
-+#endif
-+
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
- #define TAB_WIDTH 8
- /* The official name of this program (e.g., no `g' prefix).  */
-@@ -35,23 +57,44 @@
- #define AUTHORS "David MacKenzie"
-+#define FATAL_ERROR(Message)                                            \
-+  do                                                                    \
-+    {                                                                   \
-+      error (0, 0, (Message));                                          \
-+      usage (2);                                                        \
-+    }                                                                   \
-+  while (0)
-+
-+enum operating_mode
-+{
-+  /* Fold texts by columns that are at the given positions. */
-+  column_mode,
-+
-+  /* Fold texts by bytes that are at the given positions. */
-+  byte_mode,
-+
-+  /* Fold texts by characters that are at the given positions. */
-+  character_mode,
-+};
-+
- /* The name this program was run with. */
- char *program_name;
-+/* The argument shows current mode. (Default: column_mode) */
-+static enum operating_mode operating_mode;
-+
- /* If nonzero, try to break on whitespace. */
- static bool break_spaces;
--/* If nonzero, count bytes, not column positions. */
--static bool count_bytes;
--
- /* If nonzero, at least one of the files we read was standard input. */
- static bool have_read_stdin;
--static char const shortopts[] = "bsw:0::1::2::3::4::5::6::7::8::9::";
-+static char const shortopts[] = "bcsw:0::1::2::3::4::5::6::7::8::9::";
- static struct option const longopts[] =
- {
-   {"bytes", no_argument, NULL, 'b'},
-+  {"characters", no_argument, NULL, 'c'},
-   {"spaces", no_argument, NULL, 's'},
-   {"width", required_argument, NULL, 'w'},
-   {GETOPT_HELP_OPTION_DECL},
-@@ -81,6 +124,7 @@
- "), stdout);
-       fputs (_("\
-   -b, --bytes         count bytes rather than columns\n\
-+  -c, --characters    count characters rather than columns\n\
-   -s, --spaces        break at spaces\n\
-   -w, --width=WIDTH   use WIDTH columns instead of 80\n\
- "), stdout);
-@@ -98,7 +142,7 @@
- static size_t
- adjust_column (size_t column, char c)
- {
--  if (!count_bytes)
-+  if (operating_mode != byte_mode)
-     {
-       if (c == '\b')
-       {
-@@ -117,35 +161,14 @@
-   return column;
- }
--/* Fold file FILENAME, or standard input if FILENAME is "-",
--   to stdout, with maximum line length WIDTH.
--   Return true if successful.  */
--
--static bool
--fold_file (char *filename, size_t width)
-+static void
-+fold_text (FILE *istream, size_t width, int *saved_errno)
- {
--  FILE *istream;
-   int c;
-   size_t column = 0;          /* Screen column where next char will go. */
-   size_t offset_out = 0;      /* Index in `line_out' for next char. */
-   static char *line_out = NULL;
-   static size_t allocated_out = 0;
--  int saved_errno;
--
--  if (STREQ (filename, "-"))
--    {
--      istream = stdin;
--      have_read_stdin = true;
--    }
--  else
--    istream = fopen (filename, "r");
--
--  if (istream == NULL)
--    {
--      error (0, errno, "%s", filename);
--      return false;
--    }
--
-   while ((c = getc (istream)) != EOF)
-     {
-       if (offset_out + 1 >= allocated_out)
-@@ -172,6 +195,15 @@
-             bool found_blank = false;
-             size_t logical_end = offset_out;
-+            /* If LINE_OUT has no wide character,
-+               put a new wide character in LINE_OUT
-+               if column is bigger than width. */
-+            if (offset_out == 0)
-+              {
-+                line_out[offset_out++] = c;
-+                continue;
-+              }
-+
-             /* Look for the last blank. */
-             while (logical_end)
-               {
-@@ -218,11 +250,225 @@
-       line_out[offset_out++] = c;
-     }
--  saved_errno = errno;
-+  *saved_errno = errno;
-+
-+  if (offset_out)
-+    fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
-+
-+  free(line_out);
-+}
-+
-+#if HAVE_MBRTOWC
-+static void
-+fold_multibyte_text (FILE *istream, int width, int *saved_errno)
-+{
-+  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
-+  size_t buflen = 0;  /* The length of the byte sequence in buf. */
-+  char *bufpos;         /* Next read position of BUF. */
-+  wint_t wc;          /* A gotten wide character. */
-+  size_t mblength;    /* The byte size of a multibyte character which shows
-+                         as same character as WC. */
-+  mbstate_t state, state_bak; /* State of the stream. */
-+  int convfail;               /* 1, when conversion is failed. Otherwise 0. */
-+
-+  char *line_out = NULL;
-+  size_t offset_out = 0;      /* Index in `line_out' for next char. */
-+  size_t allocated_out = 0;
-+
-+  int increment;
-+  size_t column = 0;
-+
-+  size_t last_blank_pos;
-+  size_t last_blank_column;
-+  int is_blank_seen;
-+  int last_blank_increment;
-+  int is_bs_following_last_blank;
-+  size_t bs_following_last_blank_num;
-+  int is_cr_after_last_blank;
-+
-+#define CLEAR_FLAGS                           \
-+   do                                         \
-+     {                                                \
-+      last_blank_pos = 0;                     \
-+      last_blank_column = 0;                  \
-+      is_blank_seen = 0;                      \
-+      is_bs_following_last_blank = 0;         \
-+      bs_following_last_blank_num = 0;        \
-+      is_cr_after_last_blank = 0;             \
-+     }                                                \
-+   while (0)
-+
-+#define START_NEW_LINE                        \
-+   do                                 \
-+     {                                        \
-+      putchar ('\n');                 \
-+      column = 0;                     \
-+      offset_out = 0;                 \
-+      CLEAR_FLAGS;                    \
-+    }                                 \
-+   while (0)
-+
-+  CLEAR_FLAGS;
-+  memset (&state, '\0', sizeof(mbstate_t));
-+
-+  for (;; bufpos += mblength, buflen -= mblength)
-+    {
-+      if (buflen < MB_LEN_MAX && !feof (istream) && !ferror (istream))
-+      {
-+        memmove (buf, bufpos, buflen);
-+        buflen += fread (buf + buflen, sizeof(char), BUFSIZ, istream);
-+        bufpos = buf;
-+      }
-+
-+      if (buflen < 1)
-+      break;
-+
-+      /* Get a wide character. */
-+      convfail = 0;
-+      state_bak = state;
-+      mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &state);
-+
-+      switch (mblength)
-+      {
-+      case (size_t)-1:
-+      case (size_t)-2:
-+        convfail++;
-+        state = state_bak;
-+        /* Fall through. */
-+
-+      case 0:
-+        mblength = 1;
-+        break;
-+      }
-+
-+rescan:
-+      if (operating_mode == byte_mode)                        /* byte mode */
-+      increment = mblength;
-+      else if (operating_mode == character_mode)      /* character mode */
-+      increment = 1;
-+      else                                            /* column mode */
-+      {
-+        if (convfail)
-+          increment = 1;
-+        else
-+          {
-+            switch (wc)
-+              {
-+              case L'\n':
-+                fwrite (line_out, sizeof(char), offset_out, stdout);
-+                START_NEW_LINE;
-+                continue;
-+                
-+              case L'\b':
-+                increment = (column > 0) ? -1 : 0;
-+                break;
-+
-+              case L'\r':
-+                increment = -1 * column;
-+                break;
-+
-+              case L'\t':
-+                increment = 8 - column % 8;
-+                break;
-+
-+              default:
-+                increment = wcwidth (wc);
-+                increment = (increment < 0) ? 0 : increment;
-+              }
-+          }
-+      }
-+
-+      if (column + increment > width && break_spaces && last_blank_pos)
-+      {
-+        fwrite (line_out, sizeof(char), last_blank_pos, stdout);
-+        putchar ('\n');
-+
-+        offset_out = offset_out - last_blank_pos;
-+        column = column - last_blank_column + ((is_cr_after_last_blank)
-+            ? last_blank_increment : bs_following_last_blank_num);
-+        memmove (line_out, line_out + last_blank_pos, offset_out);
-+        CLEAR_FLAGS;
-+        goto rescan;
-+      }
-+
-+      if (column + increment > width && column != 0)
-+      {
-+        fwrite (line_out, sizeof(char), offset_out, stdout);
-+        START_NEW_LINE;
-+        goto rescan;
-+      }
-+
-+      if (allocated_out < offset_out + mblength)
-+      {
-+        allocated_out += 1024;
-+        line_out = xrealloc (line_out, allocated_out);
-+      }
-+
-+      memcpy (line_out + offset_out, bufpos, mblength);
-+      offset_out += mblength;
-+      column += increment;
-+
-+      if (is_blank_seen && !convfail && wc == L'\r')
-+      is_cr_after_last_blank = 1;
-+
-+      if (is_bs_following_last_blank && !convfail && wc == L'\b')
-+      ++bs_following_last_blank_num;
-+      else
-+      is_bs_following_last_blank = 0;
-+
-+      if (break_spaces && !convfail && iswblank (wc))
-+      {
-+        last_blank_pos = offset_out;
-+        last_blank_column = column;
-+        is_blank_seen = 1;
-+        last_blank_increment = increment;
-+        is_bs_following_last_blank = 1;
-+        bs_following_last_blank_num = 0;
-+        is_cr_after_last_blank = 0;
-+      }
-+    }
-+
-+  *saved_errno = errno;
-   if (offset_out)
-     fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
-+  free(line_out);
-+}
-+#endif
-+
-+/* Fold file FILENAME, or standard input if FILENAME is "-",
-+   to stdout, with maximum line length WIDTH.
-+   Return 0 if successful, 1 if an error occurs. */
-+
-+static int
-+fold_file (char *filename, int width)
-+{
-+  FILE *istream;
-+  int saved_errno;
-+
-+  if (STREQ (filename, "-"))
-+    {
-+      istream = stdin;
-+      have_read_stdin = 1;
-+    }
-+  else
-+    istream = fopen (filename, "r");
-+
-+  if (istream == NULL)
-+    {
-+      error (0, errno, "%s", filename);
-+      return 1;
-+    }
-+
-+  /* Define how ISTREAM is being folded. */
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    fold_multibyte_text (istream, width, &saved_errno);
-+  else
-+#endif
-+    fold_text (istream, width, &saved_errno);
-+
-   if (ferror (istream))
-     {
-       error (0, saved_errno, "%s", filename);
-@@ -255,7 +501,8 @@
-   atexit (close_stdout);
--  break_spaces = count_bytes = have_read_stdin = false;
-+  operating_mode = column_mode;
-+  break_spaces = have_read_stdin = false;
-   while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
-     {
-@@ -264,7 +511,15 @@
-       switch (optc)
-       {
-       case 'b':               /* Count bytes rather than columns. */
--        count_bytes = true;
-+        if (operating_mode != column_mode)
-+          FATAL_ERROR (_("only one way of folding may be specified"));
-+        operating_mode = byte_mode;
-+        break;
-+
-+      case 'c':
-+        if (operating_mode != column_mode)
-+          FATAL_ERROR (_("only one way of folding may be specified"));
-+        operating_mode = character_mode;
-         break;
-       case 's':               /* Break at word boundaries. */
---- coreutils-5.93/src/join.c.i18n     2005-08-12 08:16:25.000000000 +0100
-+++ coreutils-5.93/src/join.c  2005-12-23 08:53:01.000000000 +0000
-@@ -23,16 +23,30 @@
- #include <sys/types.h>
- #include <getopt.h>
-+/* Get mbstate_t, mbrtowc(), mbrtowc(), wcwidth().  */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+
-+/* Get iswblank(), towupper.  */
-+#if HAVE_WCTYPE_H
-+# include <wctype.h>
-+#endif
-+
- #include "system.h"
- #include "error.h"
- #include "hard-locale.h"
- #include "linebuffer.h"
--#include "memcasecmp.h"
- #include "quote.h"
- #include "stdio--.h"
- #include "xmemcoll.h"
- #include "xstrtol.h"
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
- /* The official name of this program (e.g., no `g' prefix).  */
- #define PROGRAM_NAME "join"
-@@ -104,10 +118,12 @@
- /* Last element in `outlist', where a new element can be added.  */
- static struct outlist *outlist_end = &outlist_head;
--/* Tab character separating fields.  If negative, fields are separated
--   by any nonempty string of blanks, otherwise by exactly one
--   tab character whose value (when cast to unsigned char) equals TAB.  */
--static int tab = -1;
-+/* Tab character separating fields.  If NULL, fields are separated
-+   by any nonempty string of blanks.  */
-+static char *tab = NULL;
-+
-+/* The number of bytes used for tab. */
-+static size_t tablen = 0;
- static struct option const longopts[] =
- {
-@@ -197,6 +213,8 @@
- /* Fill in the `fields' structure in LINE.  */
-+/* Fill in the `fields' structure in LINE.  */
-+
- static void
- xfields (struct line *line)
- {
-@@ -206,10 +224,11 @@
-   if (ptr == lim)
-     return;
--  if (0 <= tab)
-+  if (tab != NULL)
-     {
-+      unsigned char t = tab[0];
-       char *sep;
--      for (; (sep = memchr (ptr, tab, lim - ptr)) != NULL; ptr = sep + 1)
-+      for (; (sep = memchr (ptr, t, lim - ptr)) != NULL; ptr = sep + 1)
-       extract_field (line, ptr, sep - ptr);
-     }
-   else
-@@ -236,6 +255,148 @@
-   extract_field (line, ptr, lim - ptr);
- }
-+#if HAVE_MBRTOWC
-+static void
-+xfields_multibyte (struct line *line)
-+{
-+  char *ptr = line->buf.buffer;
-+  char const *lim = ptr + line->buf.length - 1;
-+  wchar_t wc = 0;
-+  size_t mblength = 1;
-+  mbstate_t state, state_bak;
-+
-+  memset (&state, 0, sizeof (mbstate_t));
-+
-+  if (ptr == lim)
-+    return;
-+
-+  if (tab != NULL)
-+    {
-+      unsigned char t = tab[0];
-+      char *sep = ptr;
-+      for (; ptr < lim; ptr = sep + mblength)
-+      {
-+        sep = ptr;
-+        while (sep < lim)
-+          {
-+            state_bak = state;
-+            mblength = mbrtowc (&wc, sep, lim - sep + 1, &state);
-+
-+            if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+              {
-+                mblength = 1;
-+                state = state_bak;
-+              }
-+            mblength = (mblength < 1) ? 1 : mblength;
-+
-+            if (mblength == tablen && !memcmp (sep, tab, mblength))
-+              break;
-+            else
-+              {
-+                sep += mblength;
-+                continue;
-+              }
-+          }
-+
-+        if (sep == lim)
-+          break;
-+
-+        extract_field (line, ptr, sep - ptr);
-+      }
-+    }
-+  else
-+    {
-+      /* Skip leading blanks before the first field.  */
-+      while(ptr < lim)
-+      {
-+        state_bak = state;
-+        mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state);
-+
-+        if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+          {
-+            mblength = 1;
-+            state = state_bak;
-+            break;
-+          }
-+        mblength = (mblength < 1) ? 1 : mblength;
-+
-+        if (!iswblank(wc))
-+          break;
-+        ptr += mblength;
-+      }
-+
-+      do
-+      {
-+        char *sep;
-+        state_bak = state;
-+        mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state);
-+        if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+          {
-+            mblength = 1;
-+            state = state_bak;
-+            break;
-+          }
-+        mblength = (mblength < 1) ? 1 : mblength;
-+
-+        sep = ptr + mblength;
-+        while (sep != lim)
-+          {
-+            state_bak = state;
-+            mblength = mbrtowc (&wc, sep, lim - sep + 1, &state);
-+            if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+              {
-+                mblength = 1;
-+                state = state_bak;
-+                break;
-+              }
-+            mblength = (mblength < 1) ? 1 : mblength;
-+
-+            if (iswblank (wc))
-+              break;
-+
-+            sep += mblength;
-+          }
-+
-+        extract_field (line, ptr, sep - ptr);
-+        if (sep == lim)
-+          return;
-+
-+        state_bak = state;
-+        mblength = mbrtowc (&wc, sep, lim - sep + 1, &state);
-+        if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+          {
-+            mblength = 1;
-+            state = state_bak;
-+            break;
-+          }
-+        mblength = (mblength < 1) ? 1 : mblength;
-+
-+        ptr = sep + mblength;
-+        while (ptr != lim)
-+          {
-+            state_bak = state;
-+            mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state);
-+            if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+              {
-+                mblength = 1;
-+                state = state_bak;
-+                break;
-+              }
-+            mblength = (mblength < 1) ? 1 : mblength;
-+
-+            if (!iswblank (wc))
-+              break;
-+
-+            ptr += mblength;
-+          }
-+      }
-+      while (ptr != lim);
-+    }
-+
-+  extract_field (line, ptr, lim - ptr);
-+}
-+#endif
-+
- /* Read a line from FP into LINE and split it into fields.
-    Return true if successful.  */
-@@ -256,6 +417,11 @@
-   line->nfields_allocated = 0;
-   line->nfields = 0;
-   line->fields = NULL;
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    xfields_multibyte (line);
-+  else
-+#endif
-   xfields (line);
-   return true;
- }
-@@ -310,56 +476,114 @@
- keycmp (struct line const *line1, struct line const *line2)
- {
-   /* Start of field to compare in each file.  */
--  char *beg1;
--  char *beg2;
--
--  size_t len1;
--  size_t len2;                /* Length of fields to compare.  */
-+  char *beg[2];
-+  char *copy[2];
-+  size_t len[2];      /* Length of fields to compare.  */
-   int diff;
-+  int i, j;
-   if (join_field_1 < line1->nfields)
-     {
--      beg1 = line1->fields[join_field_1].beg;
--      len1 = line1->fields[join_field_1].len;
-+      beg[0] = line1->fields[join_field_1].beg;
-+      len[0] = line1->fields[join_field_1].len;
-     }
-   else
-     {
--      beg1 = NULL;
--      len1 = 0;
-+      beg[0] = NULL;
-+      len[0] = 0;
-     }
-   if (join_field_2 < line2->nfields)
-     {
--      beg2 = line2->fields[join_field_2].beg;
--      len2 = line2->fields[join_field_2].len;
-+      beg[1] = line2->fields[join_field_2].beg;
-+      len[1] = line2->fields[join_field_2].len;
-     }
-   else
-     {
--      beg2 = NULL;
--      len2 = 0;
-+      beg[1] = NULL;
-+      len[1] = 0;
-     }
--  if (len1 == 0)
--    return len2 == 0 ? 0 : -1;
--  if (len2 == 0)
-+  if (len[0] == 0)
-+    return len[1] == 0 ? 0 : -1;
-+  if (len[1] == 0)
-     return 1;
-   if (ignore_case)
-     {
--      /* FIXME: ignore_case does not work with NLS (in particular,
--         with multibyte chars).  */
--      diff = memcasecmp (beg1, beg2, MIN (len1, len2));
-+#ifdef HAVE_MBRTOWC
-+      if (MB_CUR_MAX > 1)
-+      {
-+        size_t mblength;
-+        wchar_t wc, uwc;
-+        mbstate_t state, state_bak;
-+
-+        memset (&state, '\0', sizeof (mbstate_t));
-+
-+        for (i = 0; i < 2; i++)
-+          {
-+            copy[i] = alloca (len[i] + 1);
-+
-+            for (j = 0; j < MIN (len[0], len[1]);)
-+              {
-+                state_bak = state;
-+                mblength = mbrtowc (&wc, beg[i] + j, len[i] - j, &state);
-+
-+                switch (mblength)
-+                  {
-+                  case (size_t) -1:
-+                  case (size_t) -2:
-+                    state = state_bak;
-+                    /* Fall through */
-+                  case 0:
-+                    mblength = 1;
-+                    break;
-+
-+                  default:
-+                    uwc = towupper (wc);
-+
-+                    if (uwc != wc)
-+                      {
-+                        mbstate_t state_wc;
-+
-+                        memset (&state_wc, '\0', sizeof (mbstate_t));
-+                        wcrtomb (copy[i] + j, uwc, &state_wc);
-+                      }
-+                    else
-+                      memcpy (copy[i] + j, beg[i] + j, mblength);
-+                  }
-+                j += mblength;
-+              }
-+            copy[i][j] = '\0';
-+          }
-+      }
-+      else
-+#endif
-+      {
-+        for (i = 0; i < 2; i++)
-+          {
-+            copy[i] = alloca (len[i] + 1);
-+
-+            for (j = 0; j < MIN (len[0], len[1]); j++)
-+              copy[i][j] = toupper (beg[i][j]);
-+
-+            copy[i][j] = '\0';
-+          }
-+      }
-     }
-   else
-     {
--      if (hard_LC_COLLATE)
--      return xmemcoll (beg1, len1, beg2, len2);
--      diff = memcmp (beg1, beg2, MIN (len1, len2));
-+      copy[0] = (unsigned char *) beg[0];
-+      copy[1] = (unsigned char *) beg[1];
-     }
-+  if (HAVE_SETLOCALE && hard_LC_COLLATE)
-+    return xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]);
-+  diff = memcmp (copy[0], copy[1], MIN (len[0], len[1]));
-+
-   if (diff)
-     return diff;
--  return len1 < len2 ? -1 : len1 != len2;
-+  return len[0] - len[1];
- }
- /* Print field N of LINE if it exists and is nonempty, otherwise
-@@ -384,11 +608,18 @@
- /* Print the join of LINE1 and LINE2.  */
-+#define PUT_TAB_CHAR                                                  \
-+  do                                                                  \
-+    {                                                                 \
-+      (tab != NULL) ?                                                 \
-+      fwrite(tab, sizeof(char), tablen, stdout) : putchar (' ');      \
-+    }                                                                 \
-+  while (0)                                                           
-+
- static void
- prjoin (struct line const *line1, struct line const *line2)
- {
-   const struct outlist *outlist;
--  char output_separator = tab < 0 ? ' ' : tab;
-   outlist = outlist_head.next;
-   if (outlist)
-@@ -404,12 +635,12 @@
-         if (o->file == 0)
-           {
-             if (line1 == &uni_blank)
--              {
-+              {
-                 line = line2;
-                 field = join_field_2;
-               }
-             else
--              {
-+              {
-                 line = line1;
-                 field = join_field_1;
-               }
-@@ -423,7 +654,7 @@
-         o = o->next;
-         if (o == NULL)
-           break;
--        putchar (output_separator);
-+        PUT_TAB_CHAR;
-       }
-       putchar ('\n');
-     }
-@@ -441,23 +672,23 @@
-       prfield (join_field_1, line1);
-       for (i = 0; i < join_field_1 && i < line1->nfields; ++i)
-       {
--        putchar (output_separator);
-+        PUT_TAB_CHAR;
-         prfield (i, line1);
-       }
-       for (i = join_field_1 + 1; i < line1->nfields; ++i)
-       {
--        putchar (output_separator);
-+        PUT_TAB_CHAR;
-         prfield (i, line1);
-       }
-       for (i = 0; i < join_field_2 && i < line2->nfields; ++i)
-       {
--        putchar (output_separator);
-+        PUT_TAB_CHAR;
-         prfield (i, line2);
-       }
-       for (i = join_field_2 + 1; i < line2->nfields; ++i)
-       {
--        putchar (output_separator);
-+        PUT_TAB_CHAR;
-         prfield (i, line2);
-       }
-       putchar ('\n');
-@@ -869,20 +1100,41 @@
-       case 't':
-         {
--          unsigned char newtab = optarg[0];
--          if (! newtab)
-+          char *newtab;
-+          size_t newtablen;
-+          if (! optarg[0])
-             error (EXIT_FAILURE, 0, _("empty tab"));
--          if (optarg[1])
-+          newtab = xstrdup (optarg);
-+#if HAVE_MBRTOWC
-+          if (MB_CUR_MAX > 1)
-+            {
-+              mbstate_t state;
-+
-+              memset (&state, 0, sizeof (mbstate_t));
-+              newtablen = mbrtowc (NULL, newtab,
-+                                   strnlen (newtab, MB_LEN_MAX),
-+                                   &state);
-+              if (newtablen == (size_t) 0
-+                  || newtablen == (size_t) -1
-+                  || newtablen == (size_t) -2)
-+                newtablen = 1;
-+            }
-+          else
-+#endif
-+            newtablen = 1;
-+              
-+          if (newtablen == 1 && newtab[1])
-+            {
-+              if (STREQ (newtab, "\\0"))
-+                newtab[0] = '\0';
-+            }
-+          if (tab != NULL && strcmp (tab, newtab))
-             {
--              if (STREQ (optarg, "\\0"))
--                newtab = '\0';
--              else
--                error (EXIT_FAILURE, 0, _("multi-character tab %s"),
--                       quote (optarg));
-+              free (newtab);
-+              error (EXIT_FAILURE, 0, _("incompatible tabs"));
-             }
--          if (0 <= tab && tab != newtab)
--            error (EXIT_FAILURE, 0, _("incompatible tabs"));
-           tab = newtab;
-+          tablen = newtablen;
-         }
-         break;
---- coreutils-5.93/src/unexpand.c.i18n 2005-08-12 08:16:25.000000000 +0100
-+++ coreutils-5.93/src/unexpand.c      2005-12-23 08:53:01.000000000 +0000
-@@ -39,11 +39,28 @@
- #include <stdio.h>
- #include <getopt.h>
- #include <sys/types.h>
-+
-+/* Get mbstate_t, mbrtowc(), wcwidth(). */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+
- #include "system.h"
- #include "error.h"
- #include "quote.h"
- #include "xstrndup.h"
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+      installation; work around this configuration error.  */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
-+# define MB_LEN_MAX 16
-+#endif
-+
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
- /* The official name of this program (e.g., no `g' prefix).  */
- #define PROGRAM_NAME "unexpand"
-@@ -110,6 +127,208 @@
-   {NULL, 0, NULL, 0}
- };
-+static FILE *next_file (FILE *fp);
-+
-+#if HAVE_MBRTOWC
-+static void
-+unexpand_multibyte (void)
-+{
-+  FILE *fp;                   /* Input stream. */
-+  mbstate_t i_state;          /* Current shift state of the input stream. */
-+  mbstate_t i_state_bak;      /* Back up the I_STATE. */
-+  mbstate_t o_state;          /* Current shift state of the output stream. */
-+  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
-+  char *bufpos;                       /* Next read position of BUF. */
-+  size_t buflen = 0;          /* The length of the byte sequence in buf. */
-+  wint_t wc;                  /* A gotten wide character. */
-+  size_t mblength;            /* The byte size of a multibyte character
-+                                 which shows as same character as WC. */
-+
-+  /* Index in `tab_list' of next tabstop: */
-+  int tab_index = 0;          /* For calculating width of pending tabs. */
-+  int print_tab_index = 0;    /* For printing as many tabs as possible. */
-+  unsigned int column = 0;    /* Column on screen of next char. */
-+  int next_tab_column;                /* Column the next tab stop is on. */
-+  int convert = 1;            /* If nonzero, perform translations. */
-+  unsigned int pending = 0;   /* Pending columns of blanks. */
-+
-+  fp = next_file ((FILE *) NULL);
-+  if (fp == NULL)
-+    return;
-+
-+  memset (&o_state, '\0', sizeof(mbstate_t));
-+  memset (&i_state, '\0', sizeof(mbstate_t));
-+
-+  for (;;)
-+    {
-+      if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp))
-+      {
-+        memmove (buf, bufpos, buflen);
-+        buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp);
-+        bufpos = buf;
-+      }
-+
-+      /* Get a wide character. */
-+      if (buflen < 1)
-+      {
-+        mblength = 1;
-+        wc = WEOF;
-+      }
-+      else
-+      {
-+        i_state_bak = i_state;
-+        mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &i_state);
-+      }
-+
-+      if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+      {
-+        i_state = i_state_bak;
-+        wc = L'\0';
-+      }
-+
-+      if (wc == L' ' && convert && column < INT_MAX)
-+      {
-+        ++pending;
-+        ++column;
-+      }
-+      else if (wc == L'\t' && convert)
-+      {
-+        if (tab_size == 0)
-+          {
-+            /* Do not let tab_index == first_free_tab;
-+               stop when it is 1 less. */
-+            while (tab_index < first_free_tab - 1
-+                && column >= tab_list[tab_index])
-+              tab_index++;
-+            next_tab_column = tab_list[tab_index];
-+            if (tab_index < first_free_tab - 1)
-+              tab_index++;
-+            if (column >= next_tab_column)
-+              {
-+                convert = 0;  /* Ran out of tab stops. */
-+                goto flush_pend_mb;
-+              }
-+          }
-+        else
-+          {
-+            next_tab_column = column + tab_size - column % tab_size;
-+          }
-+        pending += next_tab_column - column;
-+        column = next_tab_column;
-+      }
-+      else
-+      {
-+flush_pend_mb:
-+        /* Flush pending spaces.  Print as many tabs as possible,
-+           then print the rest as spaces. */
-+        if (pending == 1)
-+          {
-+            putchar (' ');
-+            pending = 0;
-+          }
-+        column -= pending;
-+        while (pending > 0)
-+          {
-+            if (tab_size == 0)
-+              {
-+                /* Do not let print_tab_index == first_free_tab;
-+                   stop when it is 1 less. */
-+                while (print_tab_index < first_free_tab - 1
-+                    && column >= tab_list[print_tab_index])
-+                  print_tab_index++;
-+                next_tab_column = tab_list[print_tab_index];
-+                if (print_tab_index < first_free_tab - 1)
-+                  print_tab_index++;
-+              }
-+            else
-+              {
-+                next_tab_column =
-+                  column + tab_size - column % tab_size;
-+              }
-+            if (next_tab_column - column <= pending)
-+              {
-+                putchar ('\t');
-+                pending -= next_tab_column - column;
-+                column = next_tab_column;
-+              }
-+            else
-+              {
-+                --print_tab_index;
-+                column += pending;
-+                while (pending != 0)
-+                  {
-+                    putchar (' ');
-+                    pending--;
-+                  }
-+              }
-+          }
-+
-+        if (wc == WEOF)
-+          {
-+            fp = next_file (fp);
-+            if (fp == NULL)
-+              break;          /* No more files. */
-+            else
-+              {
-+                memset (&i_state, '\0', sizeof(mbstate_t));
-+                continue;
-+              }
-+          }
-+
-+        if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+          {
-+            if (convert)
-+              {
-+                ++column;
-+                if (convert_entire_line == 0)
-+                  convert = 0;
-+              }
-+            mblength = 1;
-+            putchar (buf[0]);
-+          }
-+        else if (mblength == 0)
-+          {
-+            if (convert && convert_entire_line == 0)
-+              convert = 0;
-+            mblength = 1;
-+            putchar ('\0');
-+          }
-+        else
-+          {
-+            if (convert)
-+              {
-+                if (wc == L'\b')
-+                  {
-+                    if (column > 0)
-+                      --column;
-+                  }
-+                else
-+                  {
-+                    int width;            /* The width of WC. */
-+
-+                    width = wcwidth (wc);
-+                    column += (width > 0) ? width : 0;
-+                    if (convert_entire_line == 0)
-+                      convert = 0;
-+                  }
-+              }
-+
-+            if (wc == L'\n')
-+              {
-+                tab_index = print_tab_index = 0;
-+                column = pending = 0;
-+                convert = 1;
-+              }
-+            fwrite (bufpos, sizeof(char), mblength, stdout);
-+          }
-+      }
-+      buflen -= mblength;
-+      bufpos += mblength;
-+    }
-+}
-+#endif
-+
-+
- void
- usage (int status)
- {
-@@ -532,7 +751,12 @@
-   file_list = (optind < argc ? &argv[optind] : stdin_argv);
--  unexpand ();
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    unexpand_multibyte ();
-+  else
-+#endif
-+    unexpand ();
-   if (have_read_stdin && fclose (stdin) != 0)
-     error (EXIT_FAILURE, errno, "-");
---- coreutils-5.93/src/sort.c.i18n     2005-10-07 19:48:28.000000000 +0100
-+++ coreutils-5.93/src/sort.c  2005-12-23 10:38:44.000000000 +0000
-@@ -23,9 +23,18 @@
- #include <config.h>
-+#include <assert.h>
- #include <getopt.h>
- #include <sys/types.h>
- #include <signal.h>
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+/* Get isw* functions. */
-+#if HAVE_WCTYPE_H
-+# include <wctype.h>
-+#endif
-+
- #include "system.h"
- #include "error.h"
- #include "hard-locale.h"
-@@ -95,14 +104,38 @@
- /* Thousands separator; if -1, then there isn't one.  */
- static int thousands_sep;
-+static int force_general_numcompare = 0;
-+
- /* Nonzero if the corresponding locales are hard.  */
- static bool hard_LC_COLLATE;
--#if HAVE_NL_LANGINFO
-+#if HAVE_LANGINFO_CODESET
- static bool hard_LC_TIME;
- #endif
- #define NONZERO(x) ((x) != 0)
-+/* get a multibyte character's byte length. */
-+#define GET_BYTELEN_OF_CHAR(LIM, PTR, MBLENGTH, STATE)                        \
-+  do                                                                  \
-+    {                                                                 \
-+      wchar_t wc;                                                     \
-+      mbstate_t state_bak;                                            \
-+                                                                      \
-+      state_bak = STATE;                                              \
-+      mblength = mbrtowc (&wc, PTR, LIM - PTR, &STATE);                       \
-+                                                                      \
-+      switch (MBLENGTH)                                                       \
-+      {                                                               \
-+      case (size_t)-1:                                                \
-+      case (size_t)-2:                                                \
-+        STATE = state_bak;                                            \
-+              /* Fall through. */                                     \
-+      case 0:                                                         \
-+        MBLENGTH = 1;                                                 \
-+      }                                                                       \
-+    }                                                                 \
-+  while (0)
-+
- /* The kind of blanks for '-b' to skip in various options. */
- enum blanktype { bl_start, bl_end, bl_both };
-@@ -239,13 +272,11 @@
-    they were read if all keys compare equal.  */
- static bool stable;
--/* If TAB has this value, blanks separate fields.  */
--enum { TAB_DEFAULT = CHAR_MAX + 1 };
--
--/* Tab character separating fields.  If TAB_DEFAULT, then fields are
-+/* Tab character separating fields.  If tab_length is 0, then fields are
-    separated by the empty string between a non-blank character and a blank
-    character. */
--static int tab = TAB_DEFAULT;
-+static char tab[MB_LEN_MAX + 1];
-+static size_t tab_length = 0;
- /* Flag to remove consecutive duplicate lines from the output.
-    Only the last of a sequence of equal lines will be output. */
-@@ -392,6 +423,44 @@
- static struct tempnode *volatile temphead;
- static struct tempnode *volatile *temptail = &temphead;
-+/* Function pointers. */
-+static void
-+(*inittables) (void);
-+static char *
-+(*begfield) (const struct line*, const struct keyfield *);
-+static char *
-+(*limfield) (const struct line*, const struct keyfield *);
-+static int
-+(*getmonth) (char const *, size_t);
-+static int
-+(*keycompare) (const struct line *, const struct line *);
-+static int
-+(*numcompare) (const char *, const char *);
-+
-+/* Test for white space multibyte character.
-+   Set LENGTH the byte length of investigated multibyte character. */
-+#if HAVE_MBRTOWC
-+static int
-+ismbblank (const char *str, size_t len, size_t *length)
-+{
-+  size_t mblength;
-+  wchar_t wc;
-+  mbstate_t state;
-+
-+  memset (&state, '\0', sizeof(mbstate_t));
-+  mblength = mbrtowc (&wc, str, len, &state);
-+
-+  if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+    {
-+      *length = 1;
-+      return 0;
-+    }
-+
-+  *length = (mblength < 1) ? 1 : mblength;
-+  return iswblank (wc);
-+}
-+#endif
-+
- /* Clean up any remaining temporary files.  */
- static void
-@@ -545,7 +614,7 @@
-   free (node);
- }
--#if HAVE_NL_LANGINFO
-+#if HAVE_LANGINFO_CODESET
- static int
- struct_month_cmp (const void *m1, const void *m2)
-@@ -560,7 +629,7 @@
- /* Initialize the character class tables. */
- static void
--inittables (void)
-+inittables_uni (void)
- {
-   size_t i;
-@@ -572,7 +641,7 @@
-       fold_toupper[i] = (ISLOWER (i) ? toupper (i) : i);
-     }
--#if HAVE_NL_LANGINFO
-+#if HAVE_LANGINFO_CODESET
-   /* If we're not in the "C" locale, read different names for months.  */
-   if (hard_LC_TIME)
-     {
-@@ -598,6 +667,64 @@
- #endif
- }
-+#if HAVE_MBRTOWC
-+static void
-+inittables_mb (void)
-+{
-+  int i, j, k, l;
-+  char *name, *s;
-+  size_t s_len, mblength;
-+  char mbc[MB_LEN_MAX];
-+  wchar_t wc, pwc;
-+  mbstate_t state_mb, state_wc;
-+
-+  for (i = 0; i < MONTHS_PER_YEAR; i++)
-+    {
-+      s = (char *) nl_langinfo (ABMON_1 + i);
-+      s_len = strlen (s);
-+      monthtab[i].name = name = (char *) xmalloc (s_len + 1);
-+      monthtab[i].val = i + 1;
-+
-+      memset (&state_mb, '\0', sizeof (mbstate_t));
-+      memset (&state_wc, '\0', sizeof (mbstate_t));
-+
-+      for (j = 0; j < s_len;)
-+      {
-+        if (!ismbblank (s + j, s_len - j, &mblength))
-+          break;
-+        j += mblength;
-+      }
-+
-+      for (k = 0; j < s_len;)
-+      {
-+        mblength = mbrtowc (&wc, (s + j), (s_len - j), &state_mb);
-+        assert (mblength != (size_t)-1 && mblength != (size_t)-2);
-+        if (mblength == 0)
-+          break;
-+
-+        pwc = towupper (wc);
-+        if (pwc == wc)
-+          {
-+            memcpy (mbc, s + j, mblength);
-+            j += mblength;
-+          }
-+        else
-+          {
-+            j += mblength;
-+            mblength = wcrtomb (mbc, pwc, &state_wc);
-+            assert (mblength != (size_t)0 && mblength != (size_t)-1);
-+          }
-+
-+        for (l = 0; l < mblength; l++)
-+          name[k++] = mbc[l];
-+      }
-+      name[k] = '\0';
-+    }
-+  qsort ((void *) monthtab, MONTHS_PER_YEAR,
-+      sizeof (struct month), struct_month_cmp);
-+}
-+#endif
-+
- /* Specify the amount of main memory to use when sorting.  */
- static void
- specify_sort_size (char const *s)
-@@ -808,7 +935,7 @@
-    by KEY in LINE. */
- static char *
--begfield (const struct line *line, const struct keyfield *key)
-+begfield_uni (const struct line *line, const struct keyfield *key)
- {
-   char *ptr = line->text, *lim = ptr + line->length - 1;
-   size_t sword = key->sword;
-@@ -818,10 +945,10 @@
-   /* The leading field separator itself is included in a field when -t
-      is absent.  */
--  if (tab != TAB_DEFAULT)
-+  if (tab_length)
-     while (ptr < lim && sword--)
-       {
--      while (ptr < lim && *ptr != tab)
-+      while (ptr < lim && *ptr != tab[0])
-         ++ptr;
-       if (ptr < lim)
-         ++ptr;
-@@ -849,11 +976,70 @@
-   return ptr;
- }
-+#if HAVE_MBRTOWC
-+static char *
-+begfield_mb (const struct line *line, const struct keyfield *key)
-+{
-+  int i;
-+  char *ptr = line->text, *lim = ptr + line->length - 1;
-+  size_t sword = key->sword;
-+  size_t schar = key->schar;
-+  size_t mblength;
-+  mbstate_t state;
-+
-+  memset (&state, '\0', sizeof(mbstate_t));
-+
-+  if (tab_length)
-+    while (ptr < lim && sword--)
-+      {
-+      while (ptr < lim && memcmp (ptr, tab, tab_length) != 0)
-+        {
-+          GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+          ptr += mblength;
-+        }
-+      if (ptr < lim)
-+        {
-+          GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+          ptr += mblength;
-+        }
-+      }
-+  else
-+    while (ptr < lim && sword--)
-+      {
-+      while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
-+        ptr += mblength;
-+      if (ptr < lim)
-+        {
-+          GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+          ptr += mblength;
-+        }
-+      while (ptr < lim && !ismbblank (ptr, lim - ptr, &mblength))
-+        ptr += mblength;
-+      }
-+
-+  if (key->skipsblanks)
-+    while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
-+      ptr += mblength;
-+
-+  for (i = 0; i < schar; i++)
-+    {
-+      GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+
-+      if (ptr + mblength > lim)
-+      break;
-+      else
-+      ptr += mblength;
-+    }
-+
-+  return ptr;
-+}
-+#endif
-+
- /* Return the limit of (a pointer to the first character after) the field
-    in LINE specified by KEY. */
- static char *
--limfield (const struct line *line, const struct keyfield *key)
-+limfield_uni (const struct line *line, const struct keyfield *key)
- {
-   char *ptr = line->text, *lim = ptr + line->length - 1;
-   size_t eword = key->eword, echar = key->echar;
-@@ -866,10 +1052,10 @@
-      `beginning' is the first character following the delimiting TAB.
-      Otherwise, leave PTR pointing at the first `blank' character after
-      the preceding field.  */
--  if (tab != TAB_DEFAULT)
-+  if (tab_length)
-     while (ptr < lim && eword--)
-       {
--      while (ptr < lim && *ptr != tab)
-+      while (ptr < lim && *ptr != tab[0])
-         ++ptr;
-       if (ptr < lim && (eword | echar))
-         ++ptr;
-@@ -915,10 +1101,10 @@
-      */
-   /* Make LIM point to the end of (one byte past) the current field.  */
--  if (tab != TAB_DEFAULT)
-+  if (tab_length)
-     {
-       char *newlim;
--      newlim = memchr (ptr, tab, lim - ptr);
-+      newlim = memchr (ptr, tab[0], lim - ptr);
-       if (newlim)
-       lim = newlim;
-     }
-@@ -951,6 +1137,107 @@
-   return ptr;
- }
-+#if HAVE_MBRTOWC
-+static char *
-+limfield_mb (const struct line *line, const struct keyfield *key)
-+{
-+  char *ptr = line->text, *lim = ptr + line->length - 1;
-+  size_t eword = key->eword, echar = key->echar;
-+  int i;
-+  size_t mblength;
-+  mbstate_t state;
-+
-+  memset (&state, '\0', sizeof(mbstate_t));
-+
-+  if (tab_length)
-+    while (ptr < lim && eword--)
-+      {
-+      while (ptr < lim && memcmp (ptr, tab, tab_length) != 0)
-+        {
-+          GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+          ptr += mblength;
-+        }
-+      if (ptr < lim && (eword | echar))
-+        {
-+          GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+          ptr += mblength;
-+        }
-+      }
-+  else
-+    while (ptr < lim && eword--)
-+      {
-+      while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
-+        ptr += mblength;
-+      if (ptr < lim)
-+        {
-+          GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+          ptr += mblength;
-+        }
-+      while (ptr < lim && !ismbblank (ptr, lim - ptr, &mblength))
-+        ptr += mblength;
-+      }
-+
-+
-+# ifdef POSIX_UNSPECIFIED
-+  /* Make LIM point to the end of (one byte past) the current field.  */
-+  if (tab_length)
-+    {
-+      char *newlim, *p;
-+
-+      newlim = NULL;
-+      for (p = ptr; p < lim;)
-+      {
-+        if (memcmp (p, tab, tab_length) == 0)
-+          {
-+            newlim = p;
-+            break;
-+          }
-+
-+        GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+        p += mblength;
-+      }
-+    }
-+  else
-+    {
-+      char *newlim;
-+      newlim = ptr;
-+
-+      while (newlim < lim && ismbblank (newlim, lim - newlim, &mblength))
-+      newlim += mblength;
-+      if (ptr < lim)
-+      {
-+        GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+        ptr += mblength;
-+      }
-+      while (newlim < lim && !ismbblank (newlim, lim - newlim, &mblength))
-+      newlim += mblength;
-+      lim = newlim;
-+    }
-+# endif
-+
-+  /* If we're skipping leading blanks, don't start counting characters
-+   *      until after skipping past any leading blanks.  */
-+  if (key->skipsblanks)
-+    while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
-+      ptr += mblength;
-+
-+  memset (&state, '\0', sizeof(mbstate_t));
-+
-+  /* Advance PTR by ECHAR (if possible), but no further than LIM.  */
-+  for (i = 0; i < echar; i++)
-+    {
-+      GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
-+
-+      if (ptr + mblength > lim)
-+      break;
-+      else
-+      ptr += mblength;
-+    }
-+
-+  return ptr;
-+}
-+#endif
-+
- /* Fill BUF reading from FP, moving buf->left bytes from the end
-    of buf->buf to the beginning first.  If EOF is reached and the
-    file wasn't terminated by a newline, supply one.  Set up BUF's line
-@@ -1067,7 +1354,7 @@
-    hideously fast. */
- static int
--numcompare (const char *a, const char *b)
-+numcompare_uni (const char *a, const char *b)
- {
-   while (blanks[to_uchar (*a)])
-     a++;
-@@ -1077,6 +1364,25 @@
-   return strnumcmp (a, b, decimal_point, thousands_sep);
- }
-+#if HAVE_MBRTOWC
-+static int
-+numcompare_mb (const char *a, const char *b)
-+{
-+  size_t mblength, len;
-+  len = strlen (a); /* okay for UTF-8 */
-+  while (*a && ismbblank (a, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength))
-+    {
-+      a += mblength;
-+      len -= mblength;
-+    }
-+  len = strlen (b); /* okay for UTF-8 */
-+  while (*b && ismbblank (b, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength))
-+    b += mblength;
-+
-+  return strnumcmp (a, b, decimal_point, thousands_sep);
-+}
-+#endif /* HAV_EMBRTOWC */
-+
- static int
- general_numcompare (const char *sa, const char *sb)
- {
-@@ -1110,7 +1416,7 @@
-    Return 0 if the name in S is not recognized.  */
- static int
--getmonth (char const *month, size_t len)
-+getmonth_uni (char const *month, size_t len)
- {
-   size_t lo = 0;
-   size_t hi = MONTHS_PER_YEAR;
-@@ -1152,11 +1458,79 @@
-   return 0;
- }
-+#if HAVE_MBRTOWC
-+static int
-+getmonth_mb (const char *s, size_t len)
-+{
-+  char *month;
-+  register size_t i;
-+  register int lo = 0, hi = MONTHS_PER_YEAR, result;
-+  char *tmp;
-+  size_t wclength, mblength;
-+  const char **pp;
-+  const wchar_t **wpp;
-+  wchar_t *month_wcs;
-+  mbstate_t state;
-+
-+  while (len > 0 && ismbblank (s, len, &mblength))
-+    {
-+      s += mblength;
-+      len -= mblength;
-+    }
-+
-+  if (len == 0)
-+    return 0;
-+
-+  month = (char *) alloca (len + 1);
-+
-+  tmp = (char *) alloca (len + 1);
-+  memcpy (tmp, s, len);
-+  tmp[len] = '\0';
-+  pp = (const char **)&tmp;
-+  month_wcs = (wchar_t *) alloca ((len + 1) * sizeof (wchar_t));
-+  memset (&state, '\0', sizeof(mbstate_t));
-+
-+  wclength = mbsrtowcs (month_wcs, pp, len + 1, &state);
-+  assert (wclength != (size_t)-1 && *pp == NULL);
-+
-+  for (i = 0; i < wclength; i++)
-+    {
-+      month_wcs[i] = towupper(month_wcs[i]);
-+      if (iswblank (month_wcs[i]))
-+      {
-+        month_wcs[i] = L'\0';
-+        break;
-+      }
-+    }
-+
-+  wpp = (const wchar_t **)&month_wcs;
-+
-+  mblength = wcsrtombs (month, wpp, len + 1, &state);
-+  assert (mblength != (-1) && *wpp == NULL);
-+
-+  do
-+    {
-+      int ix = (lo + hi) / 2;
-+
-+      if (strncmp (month, monthtab[ix].name, strlen (monthtab[ix].name)) < 0)
-+      hi = ix;
-+      else
-+      lo = ix;
-+    }
-+  while (hi - lo > 1);
-+
-+  result = (!strncmp (month, monthtab[lo].name, strlen (monthtab[lo].name))
-+      ? monthtab[lo].val : 0);
-+
-+  return result;
-+}
-+#endif
-+
- /* Compare two lines A and B trying every key in sequence until there
-    are no more keys or a difference is found. */
- static int
--keycompare (const struct line *a, const struct line *b)
-+keycompare_uni (const struct line *a, const struct line *b)
- {
-   struct keyfield const *key = keylist;
-@@ -1326,6 +1700,177 @@
-   return key->reverse ? -diff : diff;
- }
-+#if HAVE_MBRTOWC
-+static int
-+keycompare_mb (const struct line *a, const struct line *b)
-+{
-+  struct keyfield *key = keylist;
-+
-+  /* For the first iteration only, the key positions have been
-+     precomputed for us. */
-+  char *texta = a->keybeg;
-+  char *textb = b->keybeg;
-+  char *lima = a->keylim;
-+  char *limb = b->keylim;
-+
-+  size_t mblength_a, mblength_b;
-+  wchar_t wc_a, wc_b;
-+  mbstate_t state_a, state_b;
-+
-+  int diff;
-+
-+  memset (&state_a, '\0', sizeof(mbstate_t));
-+  memset (&state_b, '\0', sizeof(mbstate_t));
-+
-+  for (;;)
-+    {
-+      unsigned char *translate = (unsigned char *) key->translate;
-+      bool const *ignore = key->ignore;
-+
-+      /* Find the lengths. */
-+      size_t lena = lima <= texta ? 0 : lima - texta;
-+      size_t lenb = limb <= textb ? 0 : limb - textb;
-+
-+      /* Actually compare the fields. */
-+      if (key->numeric | key->general_numeric)
-+      {
-+        char savea = *lima, saveb = *limb;
-+
-+        *lima = *limb = '\0';
-+        if (force_general_numcompare)
-+          diff = general_numcompare (texta, textb);
-+        else
-+          diff = ((key->numeric ? numcompare : general_numcompare)
-+              (texta, textb));
-+        *lima = savea, *limb = saveb;
-+      }
-+      else if (key->month)
-+      diff = getmonth (texta, lena) - getmonth (textb, lenb);
-+      else
-+      {
-+        if (ignore || translate)
-+          {
-+            char *copy_a = (char *) alloca (lena + 1 + lenb + 1);
-+            char *copy_b = copy_a + lena + 1;
-+            size_t new_len_a, new_len_b;
-+            size_t i, j;
-+
-+            /* Ignore and/or translate chars before comparing.  */
-+# define IGNORE_CHARS(NEW_LEN, LEN, TEXT, COPY, WC, MBLENGTH, STATE)  \
-+  do                                                                  \
-+    {                                                                 \
-+      wchar_t uwc;                                                    \
-+      char mbc[MB_LEN_MAX];                                           \
-+      mbstate_t state_wc;                                             \
-+                                                                      \
-+      for (NEW_LEN = i = 0; i < LEN;)                                 \
-+      {                                                               \
-+        mbstate_t state_bak;                                          \
-+                                                                      \
-+        state_bak = STATE;                                            \
-+        MBLENGTH = mbrtowc (&WC, TEXT + i, LEN - i, &STATE);          \
-+                                                                      \
-+        if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1          \
-+            || MBLENGTH == 0)                                         \
-+          {                                                           \
-+            if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1)     \
-+              STATE = state_bak;                                      \
-+            if (!ignore)                                              \
-+              COPY[NEW_LEN++] = TEXT[i++];                            \
-+            continue;                                                 \
-+          }                                                           \
-+                                                                      \
-+        if (ignore)                                                   \
-+          {                                                           \
-+            if ((ignore == nonprinting && !iswprint (WC))             \
-+                 || (ignore == nondictionary                          \
-+                     && !iswalnum (WC) && !iswblank (WC)))            \
-+              {                                                       \
-+                i += MBLENGTH;                                        \
-+                continue;                                             \
-+              }                                                       \
-+          }                                                           \
-+                                                                      \
-+        if (translate)                                                \
-+          {                                                           \
-+                                                                      \
-+            uwc = towupper(WC);                                       \
-+            if (WC == uwc)                                            \
-+              {                                                       \
-+                memcpy (mbc, TEXT + i, MBLENGTH);                     \
-+                i += MBLENGTH;                                        \
-+              }                                                       \
-+            else                                                      \
-+              {                                                       \
-+                i += MBLENGTH;                                        \
-+                WC = uwc;                                             \
-+                memset (&state_wc, '\0', sizeof (mbstate_t));         \
-+                                                                      \
-+                MBLENGTH = wcrtomb (mbc, WC, &state_wc);              \
-+                assert (MBLENGTH != (size_t)-1 && MBLENGTH != 0);     \
-+              }                                                       \
-+                                                                      \
-+            for (j = 0; j < MBLENGTH; j++)                            \
-+              COPY[NEW_LEN++] = mbc[j];                               \
-+          }                                                           \
-+        else                                                          \
-+          for (j = 0; j < MBLENGTH; j++)                              \
-+            COPY[NEW_LEN++] = TEXT[i++];                              \
-+      }                                                               \
-+      COPY[NEW_LEN] = '\0';                                           \
-+    }                                                                 \
-+  while (0)
-+            IGNORE_CHARS (new_len_a, lena, texta, copy_a,
-+                          wc_a, mblength_a, state_a);
-+            IGNORE_CHARS (new_len_b, lenb, textb, copy_b,
-+                          wc_b, mblength_b, state_b);
-+            diff = xmemcoll (copy_a, new_len_a, copy_b, new_len_b);
-+          }
-+        else if (lena == 0)
-+          diff = - NONZERO (lenb);
-+        else if (lenb == 0)
-+          goto greater;
-+        else
-+          diff = xmemcoll (texta, lena, textb, lenb);
-+      }
-+
-+      if (diff)
-+      goto not_equal;
-+
-+      key = key->next;
-+      if (! key)
-+      break;
-+
-+      /* Find the beginning and limit of the next field.  */
-+      if (key->eword != -1)
-+      lima = limfield (a, key), limb = limfield (b, key);
-+      else
-+      lima = a->text + a->length - 1, limb = b->text + b->length - 1;
-+
-+      if (key->sword != -1)
-+      texta = begfield (a, key), textb = begfield (b, key);
-+      else
-+      {
-+        texta = a->text, textb = b->text;
-+        if (key->skipsblanks)
-+          {
-+            while (texta < lima && ismbblank (texta, lima - texta, &mblength_a))
-+              texta += mblength_a;
-+            while (textb < limb && ismbblank (textb, limb - textb, &mblength_b))
-+              textb += mblength_b;
-+          }
-+      }
-+    }
-+
-+  return 0;
-+
-+greater:
-+  diff = 1;
-+not_equal:
-+  return key->reverse ? -diff : diff;
-+}
-+#endif
-+
- /* Compare two lines A and B, returning negative, zero, or positive
-    depending on whether A compares less than, equal to, or greater than B. */
-@@ -2127,7 +2672,7 @@
-   atexit (close_stdout);
-   hard_LC_COLLATE = hard_locale (LC_COLLATE);
--#if HAVE_NL_LANGINFO
-+#if HAVE_LANGINFO_CODESET
-   hard_LC_TIME = hard_locale (LC_TIME);
- #endif
-@@ -2148,6 +2693,27 @@
-       thousands_sep = -1;
-   }
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    {
-+      inittables = inittables_mb;
-+      begfield = begfield_mb;
-+      limfield = limfield_mb;
-+      getmonth = getmonth_mb;
-+      keycompare = keycompare_mb;
-+      numcompare = numcompare_mb;
-+    }
-+  else
-+#endif
-+    {
-+      inittables = inittables_uni;
-+      begfield = begfield_uni;
-+      limfield = limfield_uni;
-+      getmonth = getmonth_uni;
-+      keycompare = keycompare_uni;
-+      numcompare = numcompare_uni;
-+    }
-+
-   have_read_stdin = false;
-   inittables ();
-@@ -2349,13 +2915,35 @@
-       case 't':
-         {
--          char newtab = optarg[0];
--          if (! newtab)
-+          char newtab[MB_LEN_MAX + 1];
-+          size_t newtab_length = 1;
-+          strncpy (newtab, optarg, MB_LEN_MAX);
-+          if (! newtab[0])
-             error (SORT_FAILURE, 0, _("empty tab"));
--          if (optarg[1])
-+#if HAVE_MBRTOWC
-+          if (MB_CUR_MAX > 1)
-+            {
-+              wchar_t wc;
-+              mbstate_t state;
-+              size_t i;
-+
-+              memset (&state, '\0', sizeof (mbstate_t));
-+              newtab_length = mbrtowc (&wc, newtab, strnlen (newtab,
-+                                                             MB_LEN_MAX),
-+                                       &state);
-+              switch (newtab_length)
-+                {
-+                case (size_t) -1:
-+                case (size_t) -2:
-+                case 0:
-+                  newtab_length = 1;
-+                }
-+            }
-+#endif
-+          if (newtab_length == 1 && optarg[1])
-             {
-               if (STREQ (optarg, "\\0"))
--                newtab = '\0';
-+                newtab[0] = '\0';
-               else
-                 {
-                   /* Provoke with `sort -txx'.  Complain about
-@@ -2366,9 +2954,12 @@
-                          quote (optarg));
-                 }
-             }
--          if (tab != TAB_DEFAULT && tab != newtab)
-+          if (tab_length
-+              && (tab_length != newtab_length
-+                  || memcmp (tab, newtab, tab_length) != 0))
-             error (SORT_FAILURE, 0, _("incompatible tabs"));
--          tab = newtab;
-+          memcpy (tab, newtab, newtab_length);
-+          tab_length = newtab_length;
-         }
-         break;
---- /dev/null  2005-10-10 09:36:06.437701000 +0100
-+++ coreutils-5.93/tests/sort/sort-mb-tests    2005-12-23 08:53:01.000000000 +0000
-@@ -0,0 +1,58 @@
-+#! /bin/sh
-+case $# in
-+  0) xx='../../src/sort';;
-+  *) xx="$1";;
-+esac
-+test "$VERBOSE" && echo=echo || echo=:
-+$echo testing program: $xx
-+errors=0
-+test "$srcdir" || srcdir=.
-+test "$VERBOSE" && $xx --version 2> /dev/null
-+
-+export LC_ALL=en_US.UTF-8
-+locale -k LC_CTYPE 2>&1 | grep -q charmap.*UTF-8 || exit 77
-+errors=0
-+
-+$xx -t @ -k2 -n mb1.I > mb1.O
-+code=$?
-+if test $code != 0; then
-+  $echo "Test mb1 failed: $xx return code $code differs from expected value 0" 1>&2
-+  errors=`expr $errors + 1`
-+else
-+  cmp mb1.O $srcdir/mb1.X > /dev/null 2>&1
-+  case $? in
-+    0) if test "$VERBOSE"; then $echo "passed mb1"; fi;;
-+    1) $echo "Test mb1 failed: files mb1.O and $srcdir/mb1.X differ" 1>&2
-+       (diff -c mb1.O $srcdir/mb1.X) 2> /dev/null
-+       errors=`expr $errors + 1`;;
-+    2) $echo "Test mb1 may have failed." 1>&2
-+       $echo The command "cmp mb1.O $srcdir/mb1.X" failed. 1>&2
-+       errors=`expr $errors + 1`;;
-+  esac
-+fi
-+
-+$xx -t @ -k4 -n mb2.I > mb2.O
-+code=$?
-+if test $code != 0; then
-+  $echo "Test mb2 failed: $xx return code $code differs from expected value 0" 1>&2
-+  errors=`expr $errors + 1`
-+else
-+  cmp mb2.O $srcdir/mb2.X > /dev/null 2>&1
-+  case $? in
-+    0) if test "$VERBOSE"; then $echo "passed mb2"; fi;;
-+    1) $echo "Test mb2 failed: files mb2.O and $srcdir/mb2.X differ" 1>&2
-+       (diff -c mb2.O $srcdir/mb2.X) 2> /dev/null
-+       errors=`expr $errors + 1`;;
-+    2) $echo "Test mb2 may have failed." 1>&2
-+       $echo The command "cmp mb2.O $srcdir/mb2.X" failed. 1>&2
-+       errors=`expr $errors + 1`;;
-+  esac
-+fi
-+
-+if test $errors = 0; then
-+  $echo Passed all 113 tests. 1>&2
-+else
-+  $echo Failed $errors tests. 1>&2
-+fi
-+test $errors = 0 || errors=1
-+exit $errors
---- /dev/null  2005-10-10 09:36:06.437701000 +0100
-+++ coreutils-5.93/tests/sort/mb1.I    2005-12-23 08:53:01.000000000 +0000
-@@ -0,0 +1,4 @@
-+Apple@10
-+Banana@5
-+Citrus@20
-+Cherry@30
---- /dev/null  2005-10-10 09:36:06.437701000 +0100
-+++ coreutils-5.93/tests/sort/mb2.I    2005-12-23 08:53:01.000000000 +0000
-@@ -0,0 +1,4 @@
-+Apple@AA10@@20
-+Banana@AA5@@30
-+Citrus@AA20@@5
-+Cherry@AA30@@10
---- /dev/null  2005-10-10 09:36:06.437701000 +0100
-+++ coreutils-5.93/tests/sort/mb1.X    2005-12-23 08:53:01.000000000 +0000
-@@ -0,0 +1,4 @@
-+Banana@5
-+Apple@10
-+Citrus@20
-+Cherry@30
---- /dev/null  2005-10-10 09:36:06.437701000 +0100
-+++ coreutils-5.93/tests/sort/mb2.X    2005-12-23 08:53:01.000000000 +0000
-@@ -0,0 +1,4 @@
-+Citrus@AA20@@5
-+Cherry@AA30@@10
-+Apple@AA10@@20
-+Banana@AA5@@30
---- coreutils-5.93/tests/sort/Makefile.am.i18n 2005-10-24 22:02:25.000000000 +0100
-+++ coreutils-5.93/tests/sort/Makefile.am      2005-12-23 08:53:01.000000000 +0000
-@@ -43,14 +43,16 @@
- nul-nls.E use-nl.O use-nl.E o2.O o2.E nul-tab.O nul-tab.E
- ##test-files-end
--EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen)
--noinst_SCRIPTS = $x-tests
-+run_gen += mb1.O mb2.O
-+
-+EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) mb1.I mb1.X mb2.I mb2.X
-+noinst_SCRIPTS = $x-tests # $x-mb-tests
- TESTS_ENVIRONMENT = \
-   PATH="`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
- editpl = sed -e 's,@''PERL''@,$(PERL),g' -e 's,@''srcdir''@,$(srcdir),g'
--TESTS = $x-tests
-+TESTS = $x-tests $x-mb-tests
- mk_script = $(srcdir)/../mk-script
- $(srcdir)/$x-tests: $(mk_script) Test.pm Makefile.am
---- coreutils-5.93/tests/sort/Makefile.in.i18n 2005-10-22 19:13:23.000000000 +0100
-+++ coreutils-5.93/tests/sort/Makefile.in      2005-10-26 22:17:04.000000000 +0100
-@@ -338,13 +338,15 @@
- o-no-file1.E create-empty.O create-empty.E neg-nls.O neg-nls.E nul-nls.O \
- nul-nls.E use-nl.O use-nl.E o2.O o2.E nul-tab.O nul-tab.E
--EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen)
--noinst_SCRIPTS = $x-tests
-+run_gen += mb1.O mb2.O
-+
-+EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) mb1.I mb1.X mb2.I mb2.X
-+noinst_SCRIPTS = $x-tests # $x-mb-tests
- TESTS_ENVIRONMENT = \
-   PATH="`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
- editpl = sed -e 's,@''PERL''@,$(PERL),g' -e 's,@''srcdir''@,$(srcdir),g'
--TESTS = $x-tests
-+TESTS = $x-tests $x-mb-tests
- mk_script = $(srcdir)/../mk-script
- MAINTAINERCLEANFILES = $x-tests $(maint_gen)
- CLEANFILES = $(run_gen)
diff --git a/src/patches/coreutils-5.96-rename-tee.patch b/src/patches/coreutils-5.96-rename-tee.patch
deleted file mode 100644 (file)
index 60afab4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From b50508742035812f8ae8671eedc6623fac53f51d Mon Sep 17 00:00:00 2001
-From: Jim Meyering <jim@meyering.net>
-Date: Thu, 22 Jun 2006 12:50:32 +0000
-Subject: [PATCH] * src/tee.c (tee_files): Rename from tee, to avoid conflict with
- the function in glibc's <fcntl.h>.  Reported by Andreas Schwab.
-
----
- src/tee.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/tee.c b/src/tee.c
-index f99642d..f612181 100644
---- a/src/tee.c
-+++ b/src/tee.c
-@@ -1,5 +1,5 @@
- /* tee - read from standard input and write to standard output and files.
--   Copyright (C) 85,1990-2005 Free Software Foundation, Inc.
-+   Copyright (C) 85,1990-2006 Free Software Foundation, Inc.
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -31,7 +31,7 @@
- #define AUTHORS "Mike Parker", "Richard M. Stallman", "David MacKenzie"
--static bool tee (int nfiles, const char **files);
-+static bool tee_files (int nfiles, const char **files);
- /* If true, append to output files rather than truncating them. */
- static bool append;
-@@ -121,7 +121,7 @@ main (int argc, char **argv)
-   /* Do *not* warn if tee is given no file arguments.
-      POSIX requires that it work when given no arguments.  */
--  ok = tee (argc - optind, (const char **) &argv[optind]);
-+  ok = tee_files (argc - optind, (const char **) &argv[optind]);
-   if (close (STDIN_FILENO) != 0)
-     error (EXIT_FAILURE, errno, _("standard input"));
-@@ -133,7 +133,7 @@ main (int argc, char **argv)
-    Return true if successful.  */
- static bool
--tee (int nfiles, const char **files)
-+tee_files (int nfiles, const char **files)
- {
-   FILE **descriptors;
-   char buffer[BUFSIZ];
--- 
-1.7.2.5
-
diff --git a/src/patches/coreutils-5.96-suppress_uptime_kill_su-1.patch b/src/patches/coreutils-5.96-suppress_uptime_kill_su-1.patch
deleted file mode 100644 (file)
index 6a08909..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-Submitted By: Matthew Burgess <matthew at linuxfromscratch dot org>
-Date: 2006-03-15
-Initial Package Version: 5.94
-Origin: original suppress_hotname_uptame_kill_su patch (Robert Connolly)
-Upstream Status: N/A
-Description: This patch supresses the building of uptime, and kill.  The su
-command is built so the testsuite can run, use './src/su', but it will not
-be installed. Also see:
-           http://www.linuxfromscratch.org/patches/downloads/coreutils/
-           coreutils-5.0-dupes-2.patch
-
-diff -Naur coreutils-5.94.orig/AUTHORS coreutils-5.94/AUTHORS
---- coreutils-5.94.orig/AUTHORS        2004-11-03 23:10:50.000000000 +0000
-+++ coreutils-5.94/AUTHORS     2006-03-15 22:20:49.000000000 +0000
-@@ -34,7 +34,6 @@
- hostname: Jim Meyering
- id: Arnold Robbins, David MacKenzie
- join: Mike Haertel
--kill: Paul Eggert
- link: Michael Stone
- ln: Mike Parker, David MacKenzie
- logname: FIXME: unknown
-@@ -83,7 +82,6 @@
- unexpand: David MacKenzie
- uniq: Richard Stallman, David MacKenzie
- unlink: Michael Stone
--uptime: Joseph Arceneaux, David MacKenzie, Kaveh Ghazi
- users: Joseph Arceneaux, David MacKenzie
- vdir: Richard Stallman, David MacKenzie
- wc: Paul Rubin, David MacKenzie
-diff -Naur coreutils-5.94.orig/Makefile.in coreutils-5.94/Makefile.in
---- coreutils-5.94.orig/Makefile.in    2006-02-13 12:52:03.000000000 +0000
-+++ coreutils-5.94/Makefile.in 2006-03-15 22:20:49.000000000 +0000
-@@ -148,7 +148,7 @@
-       $(top_srcdir)/m4/ullong_max.m4 $(top_srcdir)/m4/ulonglong.m4 \
-       $(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
-       $(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \
--      $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \
-+      $(top_srcdir)/m4/unlocked-io.m4 \
-       $(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utimecmp.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \
-diff -Naur coreutils-5.94.orig/README coreutils-5.94/README
---- coreutils-5.94.orig/README 2005-09-28 18:34:26.000000000 +0000
-+++ coreutils-5.94/README      2006-03-15 22:20:49.000000000 +0000
-@@ -9,11 +9,11 @@
-   [ basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd
-   df dir dircolors dirname du echo env expand expr factor false fmt fold
--  ginstall groups head hostid hostname id join kill link ln logname ls
-+  ginstall groups head hostid hostname id join link ln logname ls
-   md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
-   printenv printf ptx pwd readlink rm rmdir seq sha1sum shred sleep sort
-   split stat stty su sum sync tac tail tee test touch tr true tsort tty
--  uname unexpand uniq unlink uptime users vdir wc who whoami yes
-+  uname unexpand uniq unlink users vdir wc who whoami yes
- See the file NEWS for a list of major changes in the current release.
-diff -Naur coreutils-5.94.orig/configure coreutils-5.94/configure
---- coreutils-5.94.orig/configure      2006-02-13 12:52:04.000000000 +0000
-+++ coreutils-5.94/configure   2006-03-15 22:20:49.000000000 +0000
-@@ -50418,8 +50418,7 @@
- { echo "$as_me:$LINENO: result: $gnulib_cv_have_boot_time" >&5
- echo "${ECHO_T}$gnulib_cv_have_boot_time" >&6; }
-   if test $gnulib_cv_have_boot_time = yes; then
--  OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uptime\$(EXEEXT)"
--  MAN="$MAN uptime.1"
-+echo "uptime is suppressed"
- fi
-diff -Naur coreutils-5.94.orig/man/Makefile.in coreutils-5.94/man/Makefile.in
---- coreutils-5.94.orig/man/Makefile.in        2006-02-13 12:51:58.000000000 +0000
-+++ coreutils-5.94/man/Makefile.in     2006-03-15 22:20:50.000000000 +0000
-@@ -142,7 +142,7 @@
-       $(top_srcdir)/m4/ullong_max.m4 $(top_srcdir)/m4/ulonglong.m4 \
-       $(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
-       $(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \
--      $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \
-+      $(top_srcdir)/m4/unlocked-io.m4 \
-       $(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utimecmp.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \
-@@ -303,13 +303,13 @@
-   basename.1 cat.1 chgrp.1 chmod.1 chown.1 chroot.1 cksum.1 comm.1 \
-   cp.1 csplit.1 cut.1 date.1 dd.1 df.1 dir.1 dircolors.1 dirname.1 du.1 \
-   echo.1 env.1 expand.1 expr.1 factor.1 false.1 fmt.1 fold.1 groups.1 \
--  head.1 hostid.1 hostname.1 id.1 install.1 join.1 kill.1 \
-+  head.1 hostid.1 hostname.1 id.1 install.1 join.1 \
-   link.1 ln.1 logname.1 \
-   ls.1 md5sum.1 mkdir.1 mkfifo.1 mknod.1 mv.1 nice.1 nl.1 nohup.1 od.1 \
-   paste.1 pathchk.1 pinky.1 pr.1 printenv.1 printf.1 ptx.1 pwd.1 readlink.1 \
-   rm.1 rmdir.1 seq.1 sha1sum.1 shred.1 sleep.1 sort.1 split.1 stat.1 stty.1 \
--  su.1 sum.1 sync.1 tac.1 tail.1 tee.1 test.1 touch.1 tr.1 true.1 tsort.1 \
--  tty.1 uname.1 unexpand.1 uniq.1 unlink.1 uptime.1 users.1 vdir.1 wc.1 \
-+  sum.1 sync.1 tac.1 tail.1 tee.1 test.1 touch.1 tr.1 true.1 tsort.1 \
-+  tty.1 uname.1 unexpand.1 uniq.1 unlink.1 users.1 vdir.1 wc.1 \
-   who.1 whoami.1 yes.1
- man_aux = $(dist_man_MANS:.1=.x)
-@@ -575,7 +575,6 @@
- id.1:         $(common_dep)   $(srcdir)/id.x          ../src/id.c
- install.1:    $(common_dep)   $(srcdir)/install.x     ../src/install.c
- join.1:               $(common_dep)   $(srcdir)/join.x        ../src/join.c
--kill.1:               $(common_dep)   $(srcdir)/kill.x        ../src/kill.c
- link.1:               $(common_dep)   $(srcdir)/link.x        ../src/link.c
- ln.1:         $(common_dep)   $(srcdir)/ln.x          ../src/ln.c
- logname.1:    $(common_dep)   $(srcdir)/logname.x     ../src/logname.c
-@@ -608,7 +607,6 @@
- split.1:      $(common_dep)   $(srcdir)/split.x       ../src/split.c
- stat.1:               $(common_dep)   $(srcdir)/stat.x        ../src/stat.c
- stty.1:               $(common_dep)   $(srcdir)/stty.x        ../src/stty.c
--su.1:         $(common_dep)   $(srcdir)/su.x          ../src/su.c
- sum.1:                $(common_dep)   $(srcdir)/sum.x         ../src/sum.c
- sync.1:               $(common_dep)   $(srcdir)/sync.x        ../src/sync.c
- tac.1:                $(common_dep)   $(srcdir)/tac.x         ../src/tac.c
-@@ -624,7 +622,6 @@
- unexpand.1:   $(common_dep)   $(srcdir)/unexpand.x    ../src/unexpand.c
- uniq.1:               $(common_dep)   $(srcdir)/uniq.x        ../src/uniq.c
- unlink.1:     $(common_dep)   $(srcdir)/unlink.x      ../src/unlink.c
--uptime.1:     $(common_dep)   $(srcdir)/uptime.x      ../src/uptime.c
- users.1:      $(common_dep)   $(srcdir)/users.x       ../src/users.c
- vdir.1:               $(common_dep)   $(srcdir)/vdir.x        ../src/ls.c
- wc.1:         $(common_dep)   $(srcdir)/wc.x          ../src/wc.c
-@@ -656,7 +653,7 @@
- check-x-vs-1:
-       PATH=../src$(PATH_SEPARATOR)$$PATH; export PATH;                \
-       t=ls-files.$$$$;                                                \
--      (cd $(srcdir) && ls -1 *.x) | sed 's/\.x$$//' | $(ASSORT) > $$t;\
-+      (cd $(srcdir) && ls -1 *.x) | grep -v -e 'kill.x' -e 'su.x' -e 'uptime.x' | sed 's/\.x$$//' | $(ASSORT) > $$t;\
-       echo $(dist_man_MANS) | tr -s ' ' '\n' | sed 's/\.1$$//'        \
-         | $(ASSORT) | diff - $$t || { rm $$t; exit 1; };              \
-       rm $$t
-diff -Naur coreutils-5.94.orig/src/Makefile.in coreutils-5.94/src/Makefile.in
---- coreutils-5.94.orig/src/Makefile.in        2006-02-13 13:08:11.000000000 +0000
-+++ coreutils-5.94/src/Makefile.in     2006-03-15 22:20:50.000000000 +0000
-@@ -39,7 +39,7 @@
- host_triplet = @host@
- EXTRA_PROGRAMS = chroot$(EXEEXT) df$(EXEEXT) hostid$(EXEEXT) \
-       nice$(EXEEXT) pinky$(EXEEXT) stty$(EXEEXT) su$(EXEEXT) \
--      uname$(EXEEXT) uptime$(EXEEXT) users$(EXEEXT) who$(EXEEXT)
-+      uname$(EXEEXT) users$(EXEEXT) who$(EXEEXT)
- bin_PROGRAMS = [$(EXEEXT) chgrp$(EXEEXT) chown$(EXEEXT) chmod$(EXEEXT) \
-       cp$(EXEEXT) dd$(EXEEXT) dircolors$(EXEEXT) du$(EXEEXT) \
-       ginstall$(EXEEXT) link$(EXEEXT) ln$(EXEEXT) dir$(EXEEXT) \
-@@ -56,7 +56,7 @@
-       uniq$(EXEEXT) wc$(EXEEXT) basename$(EXEEXT) date$(EXEEXT) \
-       dirname$(EXEEXT) echo$(EXEEXT) env$(EXEEXT) expr$(EXEEXT) \
-       factor$(EXEEXT) false$(EXEEXT) hostname$(EXEEXT) id$(EXEEXT) \
--      kill$(EXEEXT) logname$(EXEEXT) pathchk$(EXEEXT) \
-+      logname$(EXEEXT) pathchk$(EXEEXT) \
-       printenv$(EXEEXT) printf$(EXEEXT) pwd$(EXEEXT) seq$(EXEEXT) \
-       sleep$(EXEEXT) tee$(EXEEXT) test$(EXEEXT) true$(EXEEXT) \
-       tty$(EXEEXT) whoami$(EXEEXT) yes$(EXEEXT) $(am__EXEEXT_1) \
-@@ -169,7 +169,7 @@
-       $(top_srcdir)/m4/ullong_max.m4 $(top_srcdir)/m4/ulonglong.m4 \
-       $(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
-       $(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \
--      $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \
-+      $(top_srcdir)/m4/unlocked-io.m4 \
-       $(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utimecmp.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \
-@@ -350,11 +350,6 @@
- join_LDADD = $(LDADD)
- join_DEPENDENCIES = ../lib/libcoreutils.a $(am__DEPENDENCIES_1) \
-       ../lib/libcoreutils.a
--kill_SOURCES = kill.c
--kill_OBJECTS = kill.$(OBJEXT)
--kill_LDADD = $(LDADD)
--kill_DEPENDENCIES = ../lib/libcoreutils.a $(am__DEPENDENCIES_1) \
--      ../lib/libcoreutils.a
- link_SOURCES = link.c
- link_OBJECTS = link.$(OBJEXT)
- link_LDADD = $(LDADD)
-@@ -577,9 +572,6 @@
- unlink_LDADD = $(LDADD)
- unlink_DEPENDENCIES = ../lib/libcoreutils.a $(am__DEPENDENCIES_1) \
-       ../lib/libcoreutils.a
--uptime_SOURCES = uptime.c
--uptime_OBJECTS = uptime.$(OBJEXT)
--uptime_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
- users_SOURCES = users.c
- users_OBJECTS = users.$(OBJEXT)
- users_LDADD = $(LDADD)
-@@ -622,28 +614,28 @@
-       csplit.c cut.c date.c dd.c df.c $(dir_SOURCES) dircolors.c \
-       dirname.c du.c echo.c env.c expand.c expr.c factor.c false.c \
-       fmt.c fold.c $(ginstall_SOURCES) head.c hostid.c hostname.c \
--      id.c join.c kill.c link.c ln.c logname.c $(ls_SOURCES) \
-+      id.c join.c link.c ln.c logname.c $(ls_SOURCES) \
-       $(md5sum_SOURCES) mkdir.c mkfifo.c mknod.c $(mv_SOURCES) \
-       nice.c nl.c nohup.c od.c paste.c pathchk.c pinky.c pr.c \
-       printenv.c printf.c ptx.c pwd.c readlink.c $(rm_SOURCES) \
-       rmdir.c seq.c setuidgid.c $(sha1sum_SOURCES) shred.c sleep.c \
-       sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c tail.c \
-       tee.c test.c touch.c tr.c true.c tsort.c tty.c uname.c \
--      unexpand.c uniq.c unlink.c uptime.c users.c $(vdir_SOURCES) \
-+      unexpand.c uniq.c unlink.c users.c $(vdir_SOURCES) \
-       wc.c who.c whoami.c yes.c
- DIST_SOURCES = $(__SOURCES) basename.c cat.c $(chgrp_SOURCES) chmod.c \
-       $(chown_SOURCES) chroot.c cksum.c comm.c $(cp_SOURCES) \
-       csplit.c cut.c date.c dd.c df.c $(dir_SOURCES) dircolors.c \
-       dirname.c du.c echo.c env.c expand.c expr.c factor.c false.c \
-       fmt.c fold.c $(ginstall_SOURCES) head.c hostid.c hostname.c \
--      id.c join.c kill.c link.c ln.c logname.c $(ls_SOURCES) \
-+      id.c join.c link.c ln.c logname.c $(ls_SOURCES) \
-       $(md5sum_SOURCES) mkdir.c mkfifo.c mknod.c $(mv_SOURCES) \
-       nice.c nl.c nohup.c od.c paste.c pathchk.c pinky.c pr.c \
-       printenv.c printf.c ptx.c pwd.c readlink.c $(rm_SOURCES) \
-       rmdir.c seq.c setuidgid.c $(sha1sum_SOURCES) shred.c sleep.c \
-       sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c tail.c \
-       tee.c test.c touch.c tr.c true.c tsort.c tty.c uname.c \
--      unexpand.c uniq.c unlink.c uptime.c users.c $(vdir_SOURCES) \
-+      unexpand.c uniq.c unlink.c users.c $(vdir_SOURCES) \
-       wc.c who.c whoami.c yes.c
- HEADERS = $(noinst_HEADERS)
- ETAGS = etags
-@@ -840,7 +832,6 @@
- nanosec_libs = $(LDADD) $(POW_LIB) $(LIB_NANOSLEEP)
- sleep_LDADD = $(nanosec_libs)
- tail_LDADD = $(nanosec_libs)
--uptime_LDADD = $(LDADD) $(GETLOADAVG_LIBS)
- su_LDADD = $(LDADD) $(LIB_CRYPT)
- SUFFIXES = .sh
- installed_su = $(DESTDIR)$(bindir)/`echo su|sed '$(transform)'`
-@@ -1076,9 +1067,6 @@
- join$(EXEEXT): $(join_OBJECTS) $(join_DEPENDENCIES) 
-       @rm -f join$(EXEEXT)
-       $(LINK) $(join_LDFLAGS) $(join_OBJECTS) $(join_LDADD) $(LIBS)
--kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) 
--      @rm -f kill$(EXEEXT)
--      $(LINK) $(kill_LDFLAGS) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
- link$(EXEEXT): $(link_OBJECTS) $(link_DEPENDENCIES) 
-       @rm -f link$(EXEEXT)
-       $(LINK) $(link_LDFLAGS) $(link_OBJECTS) $(link_LDADD) $(LIBS)
-@@ -1226,9 +1214,6 @@
- unlink$(EXEEXT): $(unlink_OBJECTS) $(unlink_DEPENDENCIES) 
-       @rm -f unlink$(EXEEXT)
-       $(LINK) $(unlink_LDFLAGS) $(unlink_OBJECTS) $(unlink_LDADD) $(LIBS)
--uptime$(EXEEXT): $(uptime_OBJECTS) $(uptime_DEPENDENCIES) 
--      @rm -f uptime$(EXEEXT)
--      $(LINK) $(uptime_LDFLAGS) $(uptime_OBJECTS) $(uptime_LDADD) $(LIBS)
- users$(EXEEXT): $(users_OBJECTS) $(users_DEPENDENCIES) 
-       @rm -f users$(EXEEXT)
-       $(LINK) $(users_LDFLAGS) $(users_OBJECTS) $(users_LDADD) $(LIBS)
-@@ -1322,7 +1307,6 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/install.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/join.Po@am__quote@
--@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lbracket.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ln.Po@am__quote@
-@@ -1378,7 +1362,6 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unexpand.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uniq.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlink.Po@am__quote@
--@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uptime.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/users.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wc.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/who.Po@am__quote@
-@@ -1606,7 +1589,7 @@
-         && can_create_suid_root_executable=yes; \
-       rm -f $$TMPFILE; \
-       if test $$can_create_suid_root_executable = yes; then \
--        $(INSTALL_SU); \
-+        echo "Installation of su is suppressed"; \
-       else \
-         echo "WARNING: insufficient access; not installing su"; \
-         echo "NOTE: to install su, run 'make install-root' as root"; \
diff --git a/src/patches/coreutils-5.96-uname-1.patch b/src/patches/coreutils-5.96-uname-1.patch
deleted file mode 100644 (file)
index 0ae413f..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-Submitted By: Robert Connolly <robert@linuxfromscratch.org> (ashes)
-Date: 2005-11-13
-Initial Package Version: 5.93
-Upstream Status: pending
-Origin: Scot McPherson and Zack Winkles
-Description: Fix the output of uname once and for all. This is the position independent
-version.
-
-       $ uname -m      # This always worked.
-       i686
-       $ uname -i      # Used to report 'unknown'.
-       i386
-       $ uname -p      # Likewise.
-       athlon-4
-
-Now 'uname -p' can be used by GCC's mtune/mcpu and march options. For example:
-
-       CFLAGS="-march=$(uname -m) -mtune=$(uname -p)"
-
-diff -Naur coreutils-5.93.orig/src/uname.c coreutils-5.93/src/uname.c
---- coreutils-5.93.orig/src/uname.c    2005-09-15 19:57:04.000000000 +0000
-+++ coreutils-5.93/src/uname.c 2005-11-13 19:18:35.000000000 +0000
-@@ -29,6 +29,26 @@
- # include <sys/systeminfo.h>
- #endif
-+#ifdef linux
-+/* Thanks to the ffmpeg team for this PIC version of cpuid() */
-+#ifdef ARCH_X86_64
-+#  define REG_b "rbx"
-+#  define REG_S "rsi"
-+#else
-+#  define REG_b "ebx"
-+#  define REG_S "esi"
-+#endif
-+#define cpuid(index,eax,ebx,ecx,edx)\
-+      __asm __volatile\
-+        ("mov %%"REG_b", %%"REG_S"\n\t"\
-+        "cpuid\n\t"\
-+        "xchg %%"REG_b", %%"REG_S\
-+        : "=a" (eax), "=S" (ebx),\
-+        "=c" (ecx), "=d" (edx)\
-+        : "0" (index));
-+int has_sse( void );
-+#endif
-+
- #if HAVE_SYS_SYSCTL_H
- # if HAVE_SYS_PARAM_H
- #  include <sys/param.h> /* needed for OpenBSD 3.0 */
-@@ -256,6 +276,99 @@
-       if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
-         element = processor;
-       }
-+#else
-+      {
-+      struct utsname u;
-+      uname (&u);
-+      element = u.machine;
-+#ifdef linux
-+/******************************************************************************
-+ *
-+ * Hello, major hack.  I shouldn't have to do this.  struct utsname should
-+ * have another element with this info in it.  There's probably a struct
-+ * somewhere that has this info, I just don't know where it is.
-+ *
-+ *****************************************************************************/
-+
-+      if( !strcmp( element, "i586" ) || !strcmp( element, "i686" ) ) {
-+        int eax, ebx, ecx, edx, unused;
-+        int model, family, sse;
-+     
-+        cpuid(0,unused,ebx,ecx,edx);
-+        cpuid(1,eax,unused,unused,unused);
-+        model = (eax >> 4) & 0xf;
-+        family = (eax >> 8) & 0xf;
-+
-+        switch(ebx) {
-+        case 0x756e6547: // Intel
-+          switch( family ) {
-+          case 5: // Pentium
-+            if( model <= 3 )
-+              element="pentium";
-+            if( model > 3 )
-+              element="pentium-mmx";
-+            break;
-+          case 6: // PentiumPro - Pentium III
-+            if( model == 1 ) // Pentium Pro
-+              element="pentiumpro";
-+            if( ( model == 3 ) || ( model == 5 ) ||
-+                ( model == 6 ) ) // Pentium II
-+              element="pentium2";
-+            if( ( model == 7 ) || ( model == 8 ) ||
-+                ( model == 10 ) || ( model == 11 ) ) // These are all Pentium III
-+              element="pentium3";
-+            break;
-+          case 15: // Pentium4
-+            if( model == 3 ) // Prescott
-+                element="prescott";
-+            else
-+            element="pentium4";
-+            break;
-+          default:
-+            break;
-+          } // end switch( family )
-+          break;
-+        case 0x68747541: // AMD
-+          switch(family) {
-+          case 5:
-+            if( ( model == 0 ) || ( model == 1 ) || 
-+                ( model == 2 ) || ( model == 3 ) ) // K5
-+              element="i586";
-+            if( ( model == 6 ) || ( model == 7 ) ) // K6
-+              element="k6";
-+            if( model == 8 ) // K6-2
-+              element="k6-2";
-+            if( model == 9 ) // K6-3
-+              element="k6-3";
-+            break;
-+          case 6:
-+            if( model <= 4 )
-+              element="athlon";
-+            if( model > 4 ) {
-+              sse = has_sse();
-+              if( sse == 0 )
-+                element="athlon";
-+              if( sse == 1 )
-+                element="athlon-4";
-+            }
-+            break;
-+          case 15:
-+            element="athlon-4";
-+            break;
-+          default:
-+            break;
-+          } // end switch( family )
-+          break;
-+        case 0x69727943: // Cyrix
-+          element="i386"; // who knows what cyrix supports, lets be safe
-+          break;
-+        default:
-+          break;
-+        } // end switch(ebx)
-+      }
-+
-+#endif
-+      }
- #endif
- #ifdef UNAME_PROCESSOR
-       if (element == unknown)
-@@ -293,7 +406,7 @@
-   if (toprint & PRINT_HARDWARE_PLATFORM)
-     {
--      char const *element = unknown;
-+      char *element = unknown;
- #if HAVE_SYSINFO && defined SI_PLATFORM
-       {
-       static char hardware_platform[257];
-@@ -301,6 +414,15 @@
-                         hardware_platform, sizeof hardware_platform))
-         element = hardware_platform;
-       }
-+#else
-+      {
-+      struct utsname u;
-+      uname (&u);
-+      element = u.machine;
-+      if (strlen (element) == 4 && element[0] == 'i' && element[2] == '8'
-+          && element[3] == '6')
-+        element[1] = '3';
-+      }
- #endif
- #ifdef UNAME_HARDWARE_PLATFORM
-       if (element == unknown)
-@@ -323,3 +445,29 @@
-   exit (EXIT_SUCCESS);
- }
-+
-+#ifdef linux
-+
-+/******************************************************************************
-+ *
-+ * int has_sse( void )
-+ * Checks Athlon CPU's to see if they support SSE.
-+ *
-+ *****************************************************************************/
-+
-+int has_sse( void )
-+{
-+  unsigned long edx, unused;
-+  int sse;
-+  cpuid(1,unused,unused,unused,edx);
-+  // I think, I need this tested on a Duron with SSE
-+  // and one without it.
-+  sse = edx & 0x2000000;
-+  if( sse == 0 ) {
-+    return 0;
-+  } else {
-+    return 1;
-+  }
-+
-+}
-+#endif
diff --git a/src/patches/dracut-006_add_run_dir.patch b/src/patches/dracut-006_add_run_dir.patch
deleted file mode 100644 (file)
index 08063f8..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur dracut-006.org/modules.d/99base/init dracut-006/modules.d/99base/init
---- dracut-006.org/modules.d/99base/init       2010-06-17 10:46:29.000000000 +0200
-+++ dracut-006/modules.d/99base/init   2013-10-31 16:51:17.658771341 +0100
-@@ -87,6 +87,9 @@
- ln -s /proc/self/fd /dev/fd >/dev/null 2>&1
-+# create run dir
-+mkdir run
-+
- if getarg rdinitdebug; then
-     getarg quiet && DRACUT_QUIET="yes"
-     mkfifo /dev/initlog.pipe
diff --git a/src/patches/dracut-006_lzma.patch b/src/patches/dracut-006_lzma.patch
deleted file mode 100644 (file)
index ddf4991..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur dracut-006.org/dracut dracut-006/dracut
---- dracut-006.org/dracut      2010-06-17 10:46:29.000000000 +0200
-+++ dracut-006/dracut  2010-08-07 21:00:38.000000000 +0200
-@@ -308,9 +308,7 @@
-       #strip -R .comment $note "$f" || :
-     done
- fi
--
--type pigz &>/dev/null && gzip=pigz || gzip=gzip
--( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet |$gzip -9 > "$outfile"; ) 
-+( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet | lzma > "$outfile"; ) 
- if [ $? -ne 0 ]; then
-     derror "dracut: creation of $outfile failed"
-     exit 1
diff --git a/src/patches/dracut-006_remove_cdrom_wait.patch b/src/patches/dracut-006_remove_cdrom_wait.patch
deleted file mode 100644 (file)
index 23c084e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Naur dracut-006.org/modules.d/99base/init dracut-006/modules.d/99base/init
---- dracut-006.org/modules.d/99base/init       2010-06-17 10:46:29.000000000 +0200
-+++ dracut-006/modules.d/99base/init   2011-01-12 11:40:41.713190125 +0100
-@@ -190,17 +190,6 @@
-     # no more udev jobs and queues empty.
-     sleep 0.5
--    # dirty hack for some cdrom drives,
--    # which report no medium for quiet
--    # some time.
--    for cdrom in /sys/block/sr*; do
--      [ -e "$cdrom" ] || continue
--      # skip, if cdrom medium was already found
--        strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
--          ID_CDROM_MEDIA && continue
--        echo change > "$cdrom/uevent"        
--    done
--    
-     i=$(($i+1))
-     [ $i -gt $RDRETRY ] \
-         && { flock -s 9 ; emergency_shell "No root device found"; } 9>/.console_lock
diff --git a/src/patches/dracut-006_remove_scsi_wait.patch b/src/patches/dracut-006_remove_scsi_wait.patch
deleted file mode 100644 (file)
index cfccf01..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur dracut-006.org/modules.d/99base/init dracut-006/modules.d/99base/init
---- dracut-006.org/modules.d/99base/init       2010-06-17 10:46:29.000000000 +0200
-+++ dracut-006/modules.d/99base/init   2013-10-31 17:05:09.135475525 +0100
-@@ -175,7 +175,7 @@
-     $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue
--    modprobe scsi_wait_scan && rmmod scsi_wait_scan
-+    sleep 0.1
-     $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue
diff --git a/src/patches/dracut-init_start_ipfireinstaller.patch b/src/patches/dracut-init_start_ipfireinstaller.patch
deleted file mode 100644 (file)
index 0103826..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -Naur org/init new/init
---- init       2010-06-17 10:46:29.000000000 +0200
-+++ init       2010-08-10 17:55:41.000000000 +0200
-@@ -111,8 +111,9 @@
- getarg 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline"
- source_all cmdline
--[ -z "$root" ] && die "No or empty root= argument"
--[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
-+# Disable root argument check ...
-+#[ -z "$root" ] && die "No or empty root= argument"
-+#[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
- # Network root scripts may need updated root= options,
- # so deposit them where they can see them (udev purges the env)
-@@ -202,12 +203,15 @@
-     done
-     
-     i=$(($i+1))
--    [ $i -gt $RDRETRY ] \
--        && { flock -s 9 ; emergency_shell "No root device found"; } 9>/.console_lock
-+      # Start IPFire installer after root was not found ;)
-+    [ $i -gt $RDRETRY ] && break 2;
-+
- done
- unset job
- unset queuetriggered
-+/etc/rc_installer
-+
- # pre-mount happens before we try to mount the root filesystem,
- # and happens once.
- getarg 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount"
diff --git a/src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch b/src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch
new file mode 100644 (file)
index 0000000..5215789
--- /dev/null
@@ -0,0 +1,85 @@
+From 5141638c54535b4ac80b8481404d868a63a18ecd Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Tue, 29 Jul 2014 13:48:23 +1000
+Subject: [PATCH] Assemble: Only fail auto-assemble in face of mdadm.conf
+ conflicts.
+
+We should never auto-assemble things that conflict with mdadm.conf
+However explicit assembly requests should be allowed.
+
+Reported-by: olovopb
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1070245
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ Assemble.c | 47 ++++++++++++++++++++++++++---------------------
+ 1 file changed, 26 insertions(+), 21 deletions(-)
+
+diff --git a/Assemble.c b/Assemble.c
+index aca28be..cdcdb0f 100644
+--- a/Assemble.c
++++ b/Assemble.c
+@@ -366,9 +366,6 @@ static int select_devices(struct mddev_dev *devlist,
+                       tmpdev = NULL;
+                       goto loop;
+               } else {
+-                      int rv = 0;
+-                      struct mddev_ident *match;
+-
+                       content = *contentp;
+                       tst->ss->getinfo_super(tst, content, NULL);
+@@ -377,25 +374,33 @@ static int select_devices(struct mddev_dev *devlist,
+                                          report_mismatch ? devname : NULL))
+                               goto loop;
+-                      match = conf_match(tst, content, devname,
+-                                         report_mismatch ? c->verbose : -1,
+-                                         &rv);
+-                      if (!match && rv == 2)
+-                              goto loop;
+-                      if (match && match->devname &&
+-                          strcasecmp(match->devname, "<ignore>") == 0) {
+-                              if (report_mismatch)
+-                                      pr_err("%s is a member of an explicitly ignored array\n",
+-                                             devname);
+-                              goto loop;
+-                      }
+-                      if (match && !ident_matches(match, content, tst,
+-                                                  c->homehost, c->update,
+-                                                  report_mismatch ? devname : NULL))
+-                              /* Array exists  in mdadm.conf but some
+-                               * details don't match, so reject it
++                      if (auto_assem) {
++                              /* Never auto-assemble things that conflict
++                               * with mdadm.conf in some way
+                                */
+-                              goto loop;
++                              struct mddev_ident *match;
++                              int rv = 0;
++
++                              match = conf_match(tst, content, devname,
++                                                 report_mismatch ? c->verbose : -1,
++                                                 &rv);
++                              if (!match && rv == 2)
++                                      goto loop;
++                              if (match && match->devname &&
++                                  strcasecmp(match->devname, "<ignore>") == 0) {
++                                      if (report_mismatch)
++                                              pr_err("%s is a member of an explicitly ignored array\n",
++                                                     devname);
++                                      goto loop;
++                              }
++                              if (match && !ident_matches(match, content, tst,
++                                                          c->homehost, c->update,
++                                                          report_mismatch ? devname : NULL))
++                                      /* Array exists  in mdadm.conf but some
++                                       * details don't match, so reject it
++                                       */
++                                      goto loop;
++                      }
+                       /* should be safe to try an exclusive open now, we
+                        * have rejected anything that some other mdadm might
+-- 
+1.9.3
+
diff --git a/src/patches/mktemp-1.5-add_tempfile-3.patch b/src/patches/mktemp-1.5-add_tempfile-3.patch
deleted file mode 100644 (file)
index bf6dfbe..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-Submitted By: Tushar Teredesai <tushar@linuxfromscratch.org>
-Date: 2005-07-25
-Initial Package Version: 1.5
-Upstream Status: Sent, no response yet.
-Origin: http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2003-April/033602.html
-        http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2003-June/035234.html
-               http://linuxfromscratch.org/pipermail/lfs-dev/2005-June/051908.html
-Description: Add tempfile wrapper script. Use "make install-tempfile" to install it.
-
-diff -Naur mktemp-1.5.orig/Makefile.in mktemp-1.5/Makefile.in
---- mktemp-1.5.orig/Makefile.in        2003-03-23 18:09:56.000000000 -0700
-+++ mktemp-1.5/Makefile.in     2005-07-25 11:11:11.000000000 -0600
-@@ -113,6 +113,9 @@
- install-man:
-       $(INSTALL) -m 0444 $(srcdir)/$(PROG).$(mantype) $(mandir)/man1/$(PROG).1
-+install-tempfile: $(srcdir)/tempfile
-+      $(INSTALL) -m 0555 $(srcdir)/tempfile $(bindir)/tempfile
-+
- check:
-       @echo nothing to check
-diff -Naur mktemp-1.5.orig/tempfile mktemp-1.5/tempfile
---- mktemp-1.5.orig/tempfile   1969-12-31 17:00:00.000000000 -0700
-+++ mktemp-1.5/tempfile        2005-07-25 11:13:41.000000000 -0600
-@@ -0,0 +1,85 @@
-+#!/bin/bash
-+# A tempfile wrapper for mktemp
-+# Note: If you can, avoid using tempfile and use mktemp instead.
-+#       This wrapper is provided for compatibility since some scripts use
-+#       tempfile. If possible, the best solution is to patch the scripts
-+#       to use mktemp.
-+#
-+# Copyright (c) Tushar Teredesai <tush@yahoo.com>
-+#
-+# Permission to use, copy, modify, and distribute this software for any
-+# purpose with or without fee is hereby granted, provided that the above
-+# copyright notice and this permission notice appear in all copies.
-+#
-+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+#
-+
-+# Usage info
-+usage()
-+{
-+      echo "Usage: tempfile [OPTION]"
-+      echo
-+      echo "Create a temporary file in a safe manner."
-+      echo "This version is a wrapper that invokes mktemp."
-+      echo "NOTE: Do not use tempfile in your scripts."
-+      echo "      Use mktemp instead."
-+      echo
-+      echo "[-d|--directory] DIR -> place temporary file in DIR"
-+      echo "[-p|--prefix] PREFIX -> ignored"
-+      echo "[-s|--suffix] SUFFIX -> ignored"
-+      echo "[-n|--name] NAME -> ignored"
-+      echo "[-m|--mode] MODE -> ignored"
-+      echo "--version -> output version information and exit"
-+}
-+
-+# parse all arguments
-+while [ $# != 0 ]
-+do
-+      case "$1" in
-+      # -d for tempfile is equivalent to -p for mktemp
-+      -d|--directory)
-+              dir="$2"
-+              shift 2
-+      ;;
-+      --directory=*)
-+              dir="${1#--directory=}"
-+              shift 1
-+      ;;
-+      -d*)
-+              dir="${1#-d}"
-+              shift 1
-+      ;;
-+      # The following switches are ignored.
-+      -p|--prefix|-s|--suffix|-n|--name|-m|--mode)
-+              shift 2
-+      ;;
-+      -p*|--prefix=*|-s*|--suffix=*|-n*|--name=*|-m*|--mode=*)
-+              shift 1
-+      ;;
-+      # --version for tempfile is equivalent to -V for mktemp
-+      --version)
-+              echo "tempfile 1.0 (`mktemp -V 2>/dev/null`)"
-+              exit 0
-+      ;;
-+      # Unknown switch
-+      *)
-+              usage
-+              exit 1
-+      ;;
-+      esac
-+done
-+
-+# Use the dir if $TMPDIR is not set.
-+if [ -z "$TMPDIR" -a ! -z "$dir" ]
-+then
-+      export TMPDIR="$dir"
-+fi
-+# Execute mktemp with proper arguments
-+# the -t behaviour of mktemp is the default for tempfile
-+exec mktemp -t
diff --git a/src/patches/newt-0.51.6-if1close.patch b/src/patches/newt-0.51.6-if1close.patch
deleted file mode 100644 (file)
index 476396f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
---- newt-0.51.6/form.c.orig    2004-10-15 11:17:35.042333181 -0400
-+++ newt-0.51.6/form.c 2004-10-15 11:18:53.428533351 -0400
-@@ -889,6 +889,7 @@
-     struct eventResult er;
-     int key, i, max;
-     int done = 0;
-+    int success;
-     fd_set readSet, writeSet, exceptSet;
-     struct timeval nextTimeout, now, timeout;
- #ifdef USE_GPM
-@@ -902,7 +903,7 @@
-     conn.minMod      = 0;
-     conn.maxMod      = 0;
--    Gpm_Open(&conn, 0);
-+    success = Gpm_Open(&conn, 0);
- #endif
-     newtFormSetSize(co);
-@@ -1062,7 +1063,8 @@
-     }
-     newtRefresh();
- #ifdef USE_GPM
--    Gpm_Close();
-+    if (success > 0)
-+        Gpm_Close();
- #endif
- }
diff --git a/src/patches/readline/readline62-001 b/src/patches/readline/readline62-001
deleted file mode 100644 (file)
index d4563c3..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.2
-Patch-ID: readline62-001
-
-Bug-Reported-by:       Clark J. Wang <dearvoid@gmail.com>
-Bug-Reference-ID:      <AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
-
-Bug-Description:
-
-The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
-entire line.
-
-[This patch intentionally does not modify patchlevel]
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.2-patched/vi_mode.c  2010-11-20 19:51:39.000000000 -0500
---- vi_mode.c  2011-02-17 20:24:25.000000000 -0500
-***************
-*** 1115,1119 ****
-        _rl_vi_last_motion = c;
-        RL_UNSETSTATE (RL_STATE_VIMOTION);
-!       return (0);
-      }
-  #if defined (READLINE_CALLBACKS)
---- 1115,1119 ----
-        _rl_vi_last_motion = c;
-        RL_UNSETSTATE (RL_STATE_VIMOTION);
-!       return (vidomove_dispatch (m));
-      }
-  #if defined (READLINE_CALLBACKS)
-*** ../readline-6.2-patched/callback.c 2010-06-06 12:18:58.000000000 -0400
---- callback.c 2011-02-17 20:43:28.000000000 -0500
-***************
-*** 149,152 ****
---- 149,155 ----
-         /* Should handle everything, including cleanup, numeric arguments,
-            and turning off RL_STATE_VIMOTION */
-+        if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
-+          _rl_internal_char_cleanup ();
-+ 
-         return;
-       }
diff --git a/src/patches/readline/readline62-002 b/src/patches/readline/readline62-002
deleted file mode 100644 (file)
index 3dc2604..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.2
-Patch-ID: readline62-002
-
-Bug-Reported-by:       Vincent Sheffer <vince.sheffer@apisphere.com>
-Bug-Reference-ID:      <F13C1C4F-C44C-4071-BFED-4BB6D13CF92F@apisphere.com>
-Bug-Reference-URL:     https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html
-
-Bug-Description:
-
-The readline shared library helper script needs to be updated for Mac OS X
-10.7 (Lion, darwin11).
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400
---- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400
-***************
-*** 158,162 ****
-  
-  # Darwin/MacOS X
-! darwin[89]*|darwin10*)
-       SHOBJ_STATUS=supported
-       SHLIB_STATUS=supported
---- 172,176 ----
-  
-  # Darwin/MacOS X
-! darwin[89]*|darwin1[012]*)
-       SHOBJ_STATUS=supported
-       SHLIB_STATUS=supported
-***************
-*** 187,191 ****
-  
-       case "${host_os}" in
-!      darwin[789]*|darwin10*) SHOBJ_LDFLAGS=''
-                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
-                       ;;
---- 201,205 ----
-  
-       case "${host_os}" in
-!      darwin[789]*|darwin1[012]*)     SHOBJ_LDFLAGS=''
-                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
-                       ;;
-
-*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500
---- patchlevel 2011-11-17 11:09:35.000000000 -0500
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 1
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 2
diff --git a/src/patches/readline/readline62-003 b/src/patches/readline/readline62-003
deleted file mode 100644 (file)
index 0462242..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.2
-Patch-ID: readline62-003
-
-Bug-Reported-by:       Max Horn <max@quendi.de>
-Bug-Reference-ID:      <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html
-
-Bug-Description:
-
-A change between readline-6.1 and readline-6.2 to prevent the readline input
-hook from being called too frequently had the side effect of causing delays
-when reading pasted input on systems such as Mac OS X.  This patch fixes
-those delays while retaining the readline-6.2 behavior.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.2-patched/input.c    2010-05-30 18:33:01.000000000 -0400
---- input.c    2012-06-25 21:08:42.000000000 -0400
-***************
-*** 410,414 ****
-  rl_read_key ()
-  {
-!   int c;
-  
-    rl_key_sequence_length++;
---- 412,416 ----
-  rl_read_key ()
-  {
-!   int c, r;
-  
-    rl_key_sequence_length++;
-***************
-*** 430,441 ****
-         while (rl_event_hook)
-           {
-!            if (rl_gather_tyi () < 0) /* XXX - EIO */
-               {
-                 rl_done = 1;
-                 return ('\n');
-               }
-             RL_CHECK_SIGNALS ();
--            if (rl_get_char (&c) != 0)
--              break;
-             if (rl_done)              /* XXX - experimental */
-               return ('\n');
---- 432,447 ----
-         while (rl_event_hook)
-           {
-!            if (rl_get_char (&c) != 0)
-!              break;
-!              
-!            if ((r = rl_gather_tyi ()) < 0)   /* XXX - EIO */
-               {
-                 rl_done = 1;
-                 return ('\n');
-               }
-+            else if (r == 1)                  /* read something */
-+              continue;
-+ 
-             RL_CHECK_SIGNALS ();
-             if (rl_done)              /* XXX - experimental */
-               return ('\n');
-*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500
---- patchlevel 2011-11-17 11:09:35.000000000 -0500
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 2
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 3
diff --git a/src/patches/readline/readline62-004 b/src/patches/readline/readline62-004
deleted file mode 100644 (file)
index 5f3ba9b..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.2
-Patch-ID: readline62-004
-
-Bug-Reported-by:       Jakub Filak
-Bug-Reference-ID:
-Bug-Reference-URL:     https://bugzilla.redhat.com/show_bug.cgi?id=813289
-
-Bug-Description:
-
-Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy'
-commands leads to an infinite loop.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.2-patched/vi_mode.c  2011-02-25 11:17:02.000000000 -0500
---- vi_mode.c  2012-06-02 12:24:47.000000000 -0400
-***************
-*** 1235,1243 ****
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-!   else if (vi_redoing)
-      {
-        _rl_vimvcxt->motion = _rl_vi_last_motion;
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-  #if defined (READLINE_CALLBACKS)
-    else if (RL_ISSTATE (RL_STATE_CALLBACK))
---- 1297,1313 ----
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-!   else if (vi_redoing && _rl_vi_last_motion != 'd')  /* `dd' is special */
-      {
-        _rl_vimvcxt->motion = _rl_vi_last_motion;
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-+   else if (vi_redoing)               /* handle redoing `dd' here */
-+     {
-+       _rl_vimvcxt->motion = _rl_vi_last_motion;
-+       rl_mark = rl_end;
-+       rl_beg_of_line (1, key);
-+       RL_UNSETSTATE (RL_STATE_VIMOTION);
-+       r = vidomove_dispatch (_rl_vimvcxt);
-+     }
-  #if defined (READLINE_CALLBACKS)
-    else if (RL_ISSTATE (RL_STATE_CALLBACK))
-***************
-*** 1317,1325 ****
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-!   else if (vi_redoing)
-      {
-        _rl_vimvcxt->motion = _rl_vi_last_motion;
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-  #if defined (READLINE_CALLBACKS)
-    else if (RL_ISSTATE (RL_STATE_CALLBACK))
---- 1387,1403 ----
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-!   else if (vi_redoing && _rl_vi_last_motion != 'c')  /* `cc' is special */
-      {
-        _rl_vimvcxt->motion = _rl_vi_last_motion;
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-+   else if (vi_redoing)               /* handle redoing `cc' here */
-+     {
-+       _rl_vimvcxt->motion = _rl_vi_last_motion;
-+       rl_mark = rl_end;
-+       rl_beg_of_line (1, key);
-+       RL_UNSETSTATE (RL_STATE_VIMOTION);
-+       r = vidomove_dispatch (_rl_vimvcxt);
-+     }
-  #if defined (READLINE_CALLBACKS)
-    else if (RL_ISSTATE (RL_STATE_CALLBACK))
-***************
-*** 1378,1381 ****
---- 1456,1472 ----
-        r = rl_domove_motion_callback (_rl_vimvcxt);
-      }
-+   else if (vi_redoing && _rl_vi_last_motion != 'y')  /* `yy' is special */
-+     {
-+       _rl_vimvcxt->motion = _rl_vi_last_motion;
-+       r = rl_domove_motion_callback (_rl_vimvcxt);
-+     }
-+   else if (vi_redoing)                       /* handle redoing `yy' here */
-+     {
-+       _rl_vimvcxt->motion = _rl_vi_last_motion;
-+       rl_mark = rl_end;
-+       rl_beg_of_line (1, key);
-+       RL_UNSETSTATE (RL_STATE_VIMOTION);
-+       r = vidomove_dispatch (_rl_vimvcxt);
-+     }
-  #if defined (READLINE_CALLBACKS)
-    else if (RL_ISSTATE (RL_STATE_CALLBACK))
-*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500
---- patchlevel 2011-11-17 11:09:35.000000000 -0500
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 3
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 4
diff --git a/src/patches/readline/readline63-001 b/src/patches/readline/readline63-001
new file mode 100644 (file)
index 0000000..bae6a2f
--- /dev/null
@@ -0,0 +1,43 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-001
+
+Bug-Reported-by:       Daan van Rossum <daan@flash.uchicago.edu>
+Bug-Reference-ID:      <20140307072523.GA14250@flash.uchicago.edu>
+Bug-Reference-URL:     
+
+Bug-Description:
+
+The `.' command in vi mode cannot undo multi-key commands beginning with
+`c', `d', and `y' (command plus motion specifier).
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- readline.c 2014-03-07 15:20:33.000000000 -0500
+***************
+*** 965,969 ****
+    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+        key != ANYOTHERKEY &&
+!       rl_key_sequence_length == 1 && /* XXX */
+        _rl_vi_textmod_command (key))
+      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+--- 965,969 ----
+    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+        key != ANYOTHERKEY &&
+!       _rl_dispatching_keymap == vi_movement_keymap &&
+        _rl_vi_textmod_command (key))
+      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 5
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 1
diff --git a/src/patches/readline/readline63-002 b/src/patches/readline/readline63-002
new file mode 100644 (file)
index 0000000..0e79f13
--- /dev/null
@@ -0,0 +1,44 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-002
+
+Bug-Reported-by:       Anatol Pomozov <anatol.pomozov@gmail.com>
+Bug-Reference-ID:      <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
+
+Bug-Description:
+
+When in callback mode, some readline commands can cause readline to seg
+fault by passing invalid contexts to callback functions.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- readline.c 2014-03-10 14:15:02.000000000 -0400
+***************
+*** 745,749 ****
+  
+    RL_CHECK_SIGNALS ();
+!   if (r == 0)                        /* success! */
+      {
+        _rl_keyseq_chain_dispose ();
+--- 745,750 ----
+  
+    RL_CHECK_SIGNALS ();
+!   /* We only treat values < 0 specially to simulate recursion. */
+!   if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0))        /* success! or failure! */
+      {
+        _rl_keyseq_chain_dispose ();
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 1
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 2
diff --git a/src/patches/readline/readline63-003 b/src/patches/readline/readline63-003
new file mode 100644 (file)
index 0000000..d2cad94
--- /dev/null
@@ -0,0 +1,47 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-003
+
+Bug-Reported-by:
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+There are debugging functions in the readline release that are theoretically
+exploitable as security problems.  They are not public functions, but have
+global linkage.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3/util.c     2013-09-02 13:36:12.000000000 -0400
+--- util.c     2014-03-20 10:25:53.000000000 -0400
+***************
+*** 477,480 ****
+--- 479,483 ----
+  }
+  
++ #if defined (DEBUG)
+  #if defined (USE_VARARGS)
+  static FILE *_rl_tracefp;
+***************
+*** 539,542 ****
+--- 542,546 ----
+  }
+  #endif
++ #endif /* DEBUG */
+  
+  
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 2
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 3
diff --git a/src/patches/readline/readline63-004 b/src/patches/readline/readline63-004
new file mode 100644 (file)
index 0000000..3cd89e3
--- /dev/null
@@ -0,0 +1,45 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-004
+
+Bug-Reported-by:       Egmont Koblinger <egmont@gmail.com>
+Bug-Reference-ID:      <CAGWcZk+bU5Jo1M+tutGvL-250UBE9DXjpeJVofYJSFcqFEVfMg@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html
+
+Bug-Description:
+
+The signal handling changes to bash and readline (to avoid running any code
+in a signal handler context) cause the cursor to be placed on the wrong
+line of a multi-line command after a ^C interrupts editing.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/display.c  2013-12-27 13:10:56.000000000 -0500
+--- display.c  2014-03-27 11:52:45.000000000 -0400
+***************
+*** 2678,2682 ****
+    if (_rl_echoing_p)
+      {
+!       _rl_move_vert (_rl_vis_botlin);
+        _rl_vis_botlin = 0;
+        fflush (rl_outstream);
+--- 2678,2683 ----
+    if (_rl_echoing_p)
+      {
+!       if (_rl_vis_botlin > 0)        /* minor optimization plus bug fix */
+!      _rl_move_vert (_rl_vis_botlin);
+        _rl_vis_botlin = 0;
+        fflush (rl_outstream);
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 3
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 4
diff --git a/src/patches/readline/readline63-005 b/src/patches/readline/readline63-005
new file mode 100644 (file)
index 0000000..8a63738
--- /dev/null
@@ -0,0 +1,58 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-005
+
+Bug-Reported-by:       Juergen Daubert <jue@jue.li>
+Bug-Reference-ID:      <20140303180430.GA7346@jue.netz>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html
+
+Bug-Description:
+
+There are still applications using the deprecated Function/VFunction/etc.
+typedefs in rltypedefs.h.  This patch restores the typedefs, but attempts
+to mark them as deprecated using gcc/clang attributes.  Thanks to Max Horn
+for the suggestion.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/rltypedefs.h       2011-03-26 14:53:31.000000000 -0400
+--- rltypedefs.h       2014-04-10 11:30:45.000000000 -0400
+***************
+*** 27,30 ****
+--- 27,49 ----
+  #endif
+  
++ /* Old-style, attempt to mark as deprecated in some way people will notice. */
++ 
++ #if !defined (_FUNCTION_DEF)
++ #  define _FUNCTION_DEF
++ 
++ #if defined(__GNUC__) || defined(__clang__)
++ typedef int Function () __attribute__ ((deprecated));
++ typedef void VFunction () __attribute__ ((deprecated));
++ typedef char *CPFunction () __attribute__ ((deprecated));
++ typedef char **CPPFunction () __attribute__ ((deprecated));
++ #else
++ typedef int Function ();
++ typedef void VFunction ();
++ typedef char *CPFunction ();
++ typedef char **CPPFunction ();
++ #endif
++ 
++ #endif /* _FUNCTION_DEF */
++ 
+  /* New style. */
+  
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 4
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 5
diff --git a/src/patches/readline/readline63-006 b/src/patches/readline/readline63-006
new file mode 100644 (file)
index 0000000..a3f0930
--- /dev/null
@@ -0,0 +1,63 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-006
+
+Bug-Reported-by:       <Trond.Endrestol@ximalas.info>
+Bug-Reference-ID:      <alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
+
+Bug-Description:
+
+Using reverse-i-search when horizontal scrolling is enabled does not redisplay
+the entire line containing the successful search results.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/display.c  2014-04-08 18:19:36.000000000 -0400
+--- display.c  2014-04-20 18:32:52.000000000 -0400
+***************
+*** 1638,1642 ****
+       the spot of first difference is before the end of the invisible chars,
+       lendiff needs to be adjusted. */
+!   if (current_line == 0 && !_rl_horizontal_scroll_mode &&
+        current_invis_chars != visible_wrap_offset)
+      {
+--- 1638,1642 ----
+       the spot of first difference is before the end of the invisible chars,
+       lendiff needs to be adjusted. */
+!   if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
+        current_invis_chars != visible_wrap_offset)
+      {
+***************
+*** 1826,1831 ****
+               _rl_last_c_pos += bytes_to_insert;
+  
+             if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+!              goto clear_rest_of_line;
+           }
+       }
+--- 1826,1836 ----
+               _rl_last_c_pos += bytes_to_insert;
+  
++            /* XXX - we only want to do this if we are at the end of the line
++               so we move there with _rl_move_cursor_relative */
+             if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+!              {
+!                _rl_move_cursor_relative (ne-new, new);
+!                goto clear_rest_of_line;
+!              }
+           }
+       }
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 5
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 6
diff --git a/src/patches/slang-1.4.5-utf8-segv.patch b/src/patches/slang-1.4.5-utf8-segv.patch
deleted file mode 100644 (file)
index f8df90a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -ru slang-1.4.5/src/slsmg.c slang-1.4.5-new/src/slsmg.c
---- slang-1.4.5/src/slsmg.c    2002-07-25 00:09:00.000000000 -0400
-+++ slang-1.4.5-new/src/slsmg.c        2002-07-25 00:04:02.000000000 -0400
-@@ -369,7 +369,10 @@
-   max_len = Start_Col + Screen_Cols;
-   len = This_Col;
--  p = SL_Screen[This_Row - Start_Row].neew + len - Start_Col;
-+
-+       
-+  p = SL_Screen[This_Row - Start_Row].neew;
-+  if (len > Start_Col) p += len - Start_Col;
-   prev = 0;
-   for (i = 0; i < n; i++, str) {
diff --git a/src/patches/slang-debian-utf8.patch b/src/patches/slang-debian-utf8.patch
deleted file mode 100644 (file)
index 62eb670..0000000
+++ /dev/null
@@ -1,917 +0,0 @@
---- slang-1.4.4.orig/src/slinclud.h
-+++ slang-1.4.4/src/slinclud.h
-@@ -23,4 +23,12 @@
- # include <memory.h>
- #endif
-
-+#define UTF8 1
-+
-+#ifdef UTF8
-+#include <wchar.h>
-+#include <limits.h>
-+#endif /* UTF8 */
-+
-+
- #endif                                       /* _SLANG_INCLUDE_H_ */
---- slang-1.4.4.orig/src/slang.h
-+++ slang-1.4.4/src/slang.h
-@@ -1239,10 +1239,20 @@
- extern int SLtt_Msdos_Cheap_Video;
- #endif
-
-+#define UTF8 1
-+
-+#ifdef UTF8
-+typedef int SLsmg_Char_Type;
-+#define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFFFFFF)
-+#define SLSMG_EXTRACT_COLOR(x) (((x)>>24)&0xFF)
-+#define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(wchar_t)(ch))|((color)<<24))
-+#define SLSMG_NOCHAR 1
-+#else
- typedef unsigned short SLsmg_Char_Type;
- #define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFF)
- #define SLSMG_EXTRACT_COLOR(x) (((x)>>8)&0xFF)
- #define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(unsigned char)(ch))|((color)<<8))
-+#endif /* UTF8 */
- extern int SLtt_flush_output (void);
- extern void SLtt_set_scroll_region(int, int);
-@@ -1334,7 +1342,11 @@
- /*{{{ SLsmg Screen Management Functions */
-+#ifdef UTF8
-+extern void SLsmg_fill_region (int, int, unsigned int, unsigned int, wchar_t);
-+#else
- extern void SLsmg_fill_region (int, int, unsigned int, unsigned int, unsigned char);
-+#endif /* UTF8 */
- extern void SLsmg_set_char_set (int);
- #ifndef IBMPC_SYSTEM
- extern int SLsmg_Scroll_Hash_Border;
-@@ -1351,7 +1363,12 @@
- extern void SLsmg_vprintf (char *, va_list);
- extern void SLsmg_write_string (char *);
- extern void SLsmg_write_nstring (char *, unsigned int);
-+#ifdef UTF8
-+extern void SLsmg_write_char (wchar_t);
-+extern void SLsmg_write_nwchars (wchar_t *, unsigned int);
-+#else
- extern void SLsmg_write_char (char);
-+#endif /* UTF8 */
- extern void SLsmg_write_nchars (char *, unsigned int);
- extern void SLsmg_write_wrapped_string (char *, int, int, unsigned int, unsigned int, int);
- extern void SLsmg_cls (void);
---- slang-1.4.4.orig/src/slcurses.c
-+++ slang-1.4.4/src/slcurses.c
-@@ -440,20 +440,130 @@
- static int do_newline (SLcurses_Window_Type *w)
- {
--   w->_curx = 0;
-+   /* w->_curx = 0; */
-    w->_cury += 1;
-    if (w->_cury >= w->scroll_max)
-      {
-       w->_cury = w->scroll_max - 1;
--      if (w->scroll_ok)
-+      if (w->scroll_ok) {
-+        w->_curx = 0;
-         SLcurses_wscrl (w, 1);
-+      }
-      }
-+   else
-+     w->_curx = 0;
-+   
-+   return 0;
-+}
-+
-+#ifdef UTF8
-+static int SLcurses_waddch1 (SLcurses_Window_Type *win,
-+                           wchar_t ch, int color)
-+{
-+   SLsmg_Char_Type *b, *bmin, *bmax, *c;
-+   int k;
-+
-+   if (win == NULL) return -1;
-+
-+   if (win->_cury >= win->nrows)
-+     {
-+      /* Curses seems to move current postion to top of window. */
-+      win->_cury = win->_curx = 0;
-+      return -1;
-+     }
-+
-+   win->modified = 1;
-+
-+   if (ch < ' ')
-+     {
-+      if (ch == '\n')
-+        {
-+           SLcurses_wclrtoeol (win);
-+           return do_newline (win);
-+        }
-+
-+      if (ch == '\r')
-+        {
-+           win->_curx = 0;
-+           return 0;
-+        }
-+
-+      if (ch == '\b')
-+        {
-+           if (win->_curx > 0)
-+             win->_curx--;
-+
-+           return 0;
-+        }
-+
-+      /* HACK HACK!!!! */
-+      if (ch == '\t') ch = ' ';
-+     }
-+
-+   k = wcwidth(ch);
-+
-+   if (!k)
-+     return 0; /* ignore combining characters for now */
-+
-+   if (k > win->ncols)
-+     return 0; /* character wider than window */
-+
-+   if (win->_curx + k > win->ncols) {
-+     if (win->_curx < win->ncols)
-+       SLcurses_wclrtoeol(win);
-+     do_newline (win);
-+   }
-+
-+   bmin = win->lines[win->_cury];
-+   b = bmin + win->_curx;
-+   bmax = bmin + win->ncols;
-+
-+   /* Remove overwritten chars to left */
-+   if (*b == SLSMG_NOCHAR) {
-+     for (c = b - 1; c >= bmin && *c == SLSMG_NOCHAR; c--)
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+     if (c >= bmin)
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+   }
-+
-+   *b = SLSMG_BUILD_CHAR(ch,color);
-+   win->_curx += k;
-+   while (--k > 0)
-+     *++b = SLSMG_NOCHAR;
-+
-+   /* Remove overwritten chars to right */
-+   for (c = b + 1; c < bmax && *c == SLSMG_NOCHAR; c++)
-+     *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-    return 0;
- }
- int SLcurses_waddch (SLcurses_Window_Type *win, SLtt_Char_Type attr)
- {
-+   SLsmg_Char_Type ch, color;
-+
-+   if (win == NULL) return -1;
-+
-+   ch = SLSMG_EXTRACT_CHAR(attr);
-+
-+   if (attr == ch)
-+     color = win->color;
-+   else
-+     {
-+      /* hack to pick up the default color for graphics chars */
-+      if (((attr & A_COLOR) == 0) && ((attr & A_ALTCHARSET) != 0))
-+        {
-+           /* FIXME: priority=medium: Use SLSMG_?? instead of << */
-+           attr |= win->color << 8;
-+        }
-+      color = map_attr_to_object (attr);
-+     }
-+
-+   return SLcurses_waddch1 (win, ch, color);
-+}
-+#else
-+int SLcurses_waddch (SLcurses_Window_Type *win, SLtt_Char_Type attr)
-+{
-    SLsmg_Char_Type *b, ch;
-    SLsmg_Char_Type color;
-@@ -518,6 +628,7 @@
-    return 0;
- }
-+#endif /* UTF8 */
- int SLcurses_wnoutrefresh (SLcurses_Window_Type *w)
- {
-@@ -577,7 +688,11 @@
- int SLcurses_wclrtoeol (SLcurses_Window_Type *w)
- {
-+#ifdef UTF8
-+   SLsmg_Char_Type *b, *bmin, *bmax, *c;
-+#else
-    SLsmg_Char_Type *b, *bmax;
-+#endif /* UTF8 */
-    SLsmg_Char_Type blank;
-    if (w == NULL) return -1;
-@@ -588,9 +703,23 @@
-    blank = SLSMG_BUILD_CHAR(' ',w->color);
-+#ifdef UTF8
-+   bmin = w->lines[w->_cury];
-+   b = bmin + w->_curx;
-+   bmax = bmin + w->ncols;
-+
-+   /* Remove overwritten chars to left */
-+   if (b < bmax && *b == SLSMG_NOCHAR) {
-+     for (c = b - 1; c >= bmin && *c == SLSMG_NOCHAR; c--)
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+     if (c >= bmin) 
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+   }
-+#else
-    b = w->lines[w->_cury];
-    bmax = b + w->ncols;
-    b += w->_curx;
-+#endif /* UTF8 */
-    while (b < bmax) *b++ = blank;
-    return 0;
-@@ -677,6 +806,34 @@
-    return 0;
- }
-+#ifdef UTF8
-+/* Note: if len is < 0, entire string will be used.
-+ */
-+int SLcurses_waddnstr (SLcurses_Window_Type *w, char *str, int len)
-+{
-+   size_t k;
-+   wchar_t wc;
-+   mbstate_t mbstate;
-+
-+   if ((w == NULL)
-+       || (str == NULL))
-+     return -1;
-+
-+   if (len < 0)
-+     len = (char *)(-1) - str;
-+
-+   memset (&mbstate, 0, sizeof (mbstate));
-+   while ((k = mbrtowc (&wc, str, len, &mbstate)) &&
-+        k != (size_t)(-1) &&
-+        k != (size_t)(-2))
-+     {
-+      SLcurses_waddch1 (w, wc, w->color);
-+      str += k;
-+      len -= k;
-+     }
-+   return k;
-+}
-+#else
- /* Note: if len is < 0, entire string will be used.
-  */
- int SLcurses_waddnstr (SLcurses_Window_Type *w, char *str, int len)
-@@ -758,6 +915,7 @@
-    return 0;
- }
-+#endif /* UTF8 */
- /* This routine IS NOT CORRECT.  It needs to compute the proper overlap
-  * and copy accordingly.  Here, I just assume windows are same size.
-@@ -852,12 +1010,36 @@
- int SLcurses_wdelch (SLcurses_Window_Type *w)
- {
-+#ifdef UTF8
-+   SLsmg_Char_Type *p, *p1, *pmin, *pmax, *q;
-+#else
-    SLsmg_Char_Type *p, *p1, *pmax;
-+#endif /* UTF8 */
-+#ifdef UTF8
-+   pmin = w->lines[w->_cury];
-+   p = pmin + w->_curx;
-+   pmax = pmin + w->ncols;
-+
-+   /* Remove overwritten chars to left */
-+   if (p < pmax && *p == SLSMG_NOCHAR) {
-+     for (q = p - 1; q >= pmin && *q == SLSMG_NOCHAR; q--)
-+       *q = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*q));
-+     if (q >= pmin)
-+       *q = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*q));
-+   }
-+
-+   /* Remove overwritten chars to right */
-+   for (q = p + 1; q < pmax && *q == SLSMG_NOCHAR; q++)
-+     *q = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*q));
-+ 
-+   p1 = p + 1;
-+#else
-    p = w->lines[w->_cury];
-    pmax = p + w->ncols;
-    p += w->_curx;
-    p1 = p + 1;
-+#endif /* UTF8 */
-    while (p1 < pmax)
-      {
-@@ -884,12 +1066,12 @@
-    while (pmax > p)
-      {
--      *pmax = *p1;
-+      *pmax = *p1; /* Doesn't this assign beyond the end of the line? */
-       pmax = p1;
-       p1--;
-      }
--   if (p < pmax)
-+   if (p < pmax) /* How could it be? */
-      *p = SLSMG_BUILD_CHAR(ch, w->color);
-    w->modified = 1;
---- slang-1.4.4.orig/src/slsmg.c
-+++ slang-1.4.4/src/slsmg.c
-@@ -225,6 +225,38 @@
-    SLsmg_write_nchars (str, strlen (str));
- }
-+#ifdef UTF8
-+void SLsmg_write_nstring (char *str, unsigned int n)
-+{
-+   char blank = ' ';
-+   mbstate_t mbstate;
-+
-+   /* Avoid a problem if a user accidently passes a negative value */
-+   if ((int) n < 0)
-+     return;
-+
-+   if (str != NULL)
-+     {
-+      wchar_t wc;
-+      size_t k;
-+      int w;
-+
-+      memset (&mbstate, 0, sizeof (mbstate));
-+        while ((k = mbrtowc (&wc, str, MB_LEN_MAX, &mbstate)) &&
-+             k != (size_t)(-1) &&
-+             k != (size_t)(-2))
-+        {
-+           w = wcwidth(wc);
-+           if (w < 0 || w > n)
-+             break;
-+           SLsmg_write_nwchars (&wc, 1);
-+           str += k;
-+           n -= w;
-+        }
-+     }
-+   while (n-- > 0) SLsmg_write_nchars (&blank, 1);
-+}
-+#else
- void SLsmg_write_nstring (char *str, unsigned int n)
- {
-    unsigned int width;
-@@ -243,7 +275,11 @@
-      }
-    while (width++ < n) SLsmg_write_nchars (&blank, 1);
- }
-+#endif /* UTF8 */
-+#ifdef UTF8
-+/* FIXME: This function not UTF8'd yet - Edmund */
-+#endif /* UTF8 */
- void SLsmg_write_wrapped_string (char *s, int r, int c,
-                                unsigned int dr, unsigned int dc,
-                                int fill)
-@@ -302,6 +338,123 @@
- int SLsmg_Display_Eight_Bit = 128;
- #endif
-+#ifdef UTF8
-+void SLsmg_write_nwchars (wchar_t *str, unsigned int n)
-+{
-+  SLsmg_Char_Type *p, *prev, *q;
-+  int len, max_len, w, i;
-+  wchar_t ch;
-+
-+#ifndef IBMPC_SYSTEM
-+   int alt_char_set_flag;
-+
-+   alt_char_set_flag = ((This_Color & ALT_CHAR_FLAG)
-+                      && ((tt_Use_Blink_For_ACS == NULL)
-+                          || (*tt_Use_Blink_For_ACS == 0)));
-+#endif
-+
-+  if (Smg_Inited == 0)
-+    return;
-+  if (This_Row < Start_Row || This_Row >= Start_Row + Screen_Rows)
-+    return;
-+
-+  max_len = Start_Col + Screen_Cols;
-+  len = This_Col;
-+  p = SL_Screen[This_Row - Start_Row].neew + len - Start_Col;
-+  prev = 0;
-+
-+  for (i = 0; i < n; i++, str) {
-+    ch = *str++;
-+#ifndef IBMPC_SYSTEM
-+    if (alt_char_set_flag)
-+      ch = Alt_Char_Set[ch & 0x7F];
-+#endif
-+    w = wcwidth(ch);
-+
-+    if (w > 0) {
-+      if (len + w <= max_len) {
-+      if (!prev) {
-+        for (q = p; *q == SLSMG_NOCHAR; q--)
-+          *q = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*q));
-+        *q = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*q));
-+      }
-+      prev = p;
-+      *p++ = SLSMG_BUILD_CHAR(ch, This_Color), ++len;
-+      for (; --w; len++, p++)
-+        *p = SLSMG_NOCHAR;
-+      }
-+      else if (len < max_len) {
-+      for (; len < max_len; len++, p++)
-+        *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+      prev = 0;
-+      }
-+    }
-+    else if (ch == '\n' &&
-+           SLsmg_Newline_Behavior != SLSMG_NEWLINE_PRINTABLE) {
-+      SL_Screen[This_Row - Start_Row].flags |= TOUCHED;
-+      for (; len < max_len && *p == SLSMG_NOCHAR; len++, p++)
-+      *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+      if (!SLsmg_Newline_Behavior)
-+      break;
-+      ++This_Row;
-+      len = 0;
-+      if (This_Row == Start_Row + Screen_Rows) {
-+      if (SLsmg_Newline_Behavior == SLSMG_NEWLINE_SCROLLS)
-+        scroll_up();
-+      else
-+        break;
-+      }
-+      p = SL_Screen[This_Row - Start_Row].neew;
-+      prev = 0;
-+    }
-+    else if (ch == '\t' && (SLsmg_Tab_Width > 0)) {
-+      while (len < max_len) {
-+      *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+      ++p, ++len;
-+      if (len % SLsmg_Tab_Width == 0)
-+        break;
-+      }
-+    }
-+    else if ((ch == 0x8) && SLsmg_Backspace_Moves) {
-+      /* not implemented */
-+    }
-+    else if (!w && ch) {
-+      /* we could handle combining characters here, using prev */
-+    }
-+    else {
-+      /* we should convert control characters to printable form here */
-+    }
-+  }
-+  This_Col = len;
-+  if (i == n) {
-+    SL_Screen[This_Row - Start_Row].flags |= TOUCHED;
-+    for (; len < max_len && *p == SLSMG_NOCHAR; len++, p++)
-+      *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+  }
-+}
-+
-+void SLsmg_write_char (wchar_t wc)
-+{
-+   SLsmg_write_nwchars (&wc, 1);
-+}
-+
-+void SLsmg_write_nchars (char *str, unsigned int n)
-+{
-+   wchar_t wc;
-+   size_t k;
-+   mbstate_t mbstate;
-+
-+   memset (&mbstate, 0, sizeof (mbstate));
-+   while ((k = mbrtowc (&wc, str, n, &mbstate)) &&
-+        k != (size_t)(-1) &&
-+        k != (size_t)(-2))
-+     {
-+        SLsmg_write_nwchars (&wc, 1);
-+      str += k;
-+      n -= k;
-+     }
-+}
-+#else
- void SLsmg_write_nchars (char *str, unsigned int n)
- {
-    register SLsmg_Char_Type *p, old, neew, color;
-@@ -475,6 +628,7 @@
- {
-    SLsmg_write_nchars (&ch, 1);
- }
-+#endif /* UTF8 */
- static int Cls_Flag;
-@@ -891,6 +1045,10 @@
-            This_Color = color;
-         }
-+#ifdef UTF8
-+      /* FIXME: We should convert broken wide characters to spaces
-+         before calling smart_puts */
-+#endif /* UTF8 */
-       SL_Screen[i].old[Screen_Cols] = 0;
-       SL_Screen[i].neew[Screen_Cols] = 0;
-@@ -1334,9 +1492,16 @@
-    This_Row = r; This_Col = c;
- }
-+#ifdef UTF8
-+void SLsmg_fill_region (int r, int c, unsigned int dr, unsigned int dc, wchar_t ch)
-+{
-+   static wchar_t hbuf[16];
-+   int i;
-+#else
- void SLsmg_fill_region (int r, int c, unsigned int dr, unsigned int dc, unsigned char ch)
- {
-    static unsigned char hbuf[16];
-+#endif /* UTF8 */
-    int count;
-    int dcmax, rmax;
-@@ -1357,16 +1522,30 @@
- #if 0
-    ch = Alt_Char_Set[ch];
- #endif
-+#ifdef UTF8
-+   if (ch != hbuf[0])
-+     for (i = 0; i < 16; i++)
-+       hbuf[i] = ch;
-+#else
-    if (ch != hbuf[0]) SLMEMSET ((char *) hbuf, (char) ch, 16);
-+#endif /* UTF8 */
-    for (This_Row = r; This_Row < rmax; This_Row++)
-      {
-       This_Col = c;
-       count = dc / 16;
-+#ifdef UTF8
-+      SLsmg_write_nwchars (hbuf, dc % 16);
-+#else
-       SLsmg_write_nchars ((char *) hbuf, dc % 16);
-+#endif /* UTF8 */
-       while (count-- > 0)
-         {
-+#ifdef UTF8
-+           SLsmg_write_nwchars (hbuf, 16);
-+#else
-            SLsmg_write_nchars ((char *) hbuf, 16);
-+#endif /* UTF8 */
-         }
-      }
-@@ -1381,14 +1560,22 @@
- void SLsmg_write_color_chars (SLsmg_Char_Type *s, unsigned int len)
- {
-    SLsmg_Char_Type *smax, sh;
-+#ifdef UTF8
-+   wchar_t buf[32], *b, *bmax;
-+#else
-    char buf[32], *b, *bmax;
-+#endif /* UTF8 */
-    int color, save_color;
-    if (Smg_Inited == 0) return;
-    smax = s + len;
-    b = buf;
-+#ifdef UTF8
-+   bmax = b + sizeof (buf) / sizeof (SLsmg_Char_Type);
-+#else
-    bmax = b + sizeof (buf);
-+#endif /* UTF8 */
-    save_color = This_Color;
-@@ -1412,16 +1599,28 @@
-         {
-            if (b != buf)
-              {
-+#ifdef UTF8
-+                SLsmg_write_nwchars (buf, (int) (b - buf));
-+#else
-                 SLsmg_write_nchars (buf, (int) (b - buf));
-+#endif /* UTF8 */
-                 b = buf;
-              }
-            This_Color = color;
-         }
-+#ifdef UTF8
-+      *b++ = SLSMG_EXTRACT_CHAR(sh);
-+#else
-       *b++ = (char) SLSMG_EXTRACT_CHAR(sh);
-+#endif /* UTF8 */
-      }
-    if (b != buf)
-+#ifdef UTF8
-+     SLsmg_write_nwchars (buf, (unsigned int) (b - buf));
-+#else
-      SLsmg_write_nchars (buf, (unsigned int) (b - buf));
-+#endif /* UTF8 */
-    This_Color = save_color;
- }
-@@ -1473,7 +1672,11 @@
- SLsmg_set_color_in_region (int color, int r, int c, unsigned int dr, unsigned int dc)
- {
-    int cmax, rmax;
-+#ifdef UTF8
-+   int color_mask;
-+#else
-    SLsmg_Char_Type char_mask;
-+#endif /* UTF8 */
-    if (Smg_Inited == 0) return;
-@@ -1498,14 +1701,22 @@
-         color = ((color & 0x7F) + Bce_Color_Offset) & 0x7F;
-      }
- #endif
-+#ifdef UTF8
-+   color_mask = 0;
-+#else
-    color = color << 8;
-    char_mask = 0xFF;
-+#endif /* UTF8 */
- #ifndef IBMPC_SYSTEM
-    if ((tt_Use_Blink_For_ACS == NULL)
-        || (0 == *tt_Use_Blink_For_ACS))
-+#ifdef UTF8
-+     color_mask = 0x80;
-+#else
-      char_mask = 0x80FF;
-+#endif /* UTF8 */
- #endif
-    while (r < rmax)
-@@ -1519,7 +1730,13 @@
-       while (s < smax)
-         {
-+#ifdef UTF8
-+           *s = SLSMG_BUILD_CHAR(SLSMG_EXTRACT_CHAR(*s),
-+                                 (SLSMG_EXTRACT_COLOR(*s) & color_mask)
-+                                 | color);
-+#else
-            *s = (*s & char_mask) | color;
-+#endif /* UTF8 */
-            s++;
-         }
-       r++;
---- slang-1.4.5/src/Makefile.in.foo    2002-06-12 19:30:09.000000000 -0400
-+++ slang-1.4.5/src/Makefile.in        2002-06-12 19:31:13.000000000 -0400
-@@ -67,7 +67,7 @@
- #---------------------------------------------------------------------------
- # There should be no need to change anything below here.
- #---------------------------------------------------------------------------
--THIS_LIB              = slang#
-+THIS_LIB              = slang-utf8#
- OTHERSTUFF            = 
- THIS_LIB_DEFINES      = -DSLANG
- ELF_MAJOR_VERSION     = @slang_major_version@#
---- slang-1.4.9/src/sldisply.c.orig    2003-10-27 17:24:15.000000000 -0500
-+++ slang-1.4.9/src/sldisply.c 2003-10-27 17:56:25.000000000 -0500
-@@ -9,6 +9,7 @@
- #include <time.h>
- #include <ctype.h>
-+#include <limits.h>
- #if !defined(VMS) || (__VMS_VER >= 70000000)
- # include <sys/time.h>
-@@ -1426,14 +1427,25 @@
- /* Highest bit represents the character set. */
- #define COLOR_MASK 0x7F00
-+#ifdef UTF8
-+# define COLOR_OF(x) (SLSMG_EXTRACT_COLOR(x) & 0x7F)
-+#else
- #define COLOR_OF(x) (((x)&COLOR_MASK)>>8)
-+#endif
- #define CHAR_OF(x) ((x)&0x80FF)
- #if SLTT_HAS_NON_BCE_SUPPORT
-+#ifdef UTF8
-+static int bce_color_eqs (SLsmg_Char_Type a, SLsmg_Char_Type b)
-+{
-+   a = SLSMG_EXTRACT_COLOR(a) & 0x7F;
-+   b = SLSMG_EXTRACT_COLOR(b) & 0x7F;
-+#else
- static int bce_color_eqs (unsigned int a, unsigned int b)
- {
-    a = COLOR_OF(a);
-    b = COLOR_OF(b);
-+#endif
-    
-    if (a == b)
-      return 1;
-@@ -1459,8 +1471,14 @@
-     :  (Ansi_Color_Map[COLOR_OF(a)].mono == Ansi_Color_Map[COLOR_OF(b)].mono))
- #endif
-+#ifdef UTF8
-+#define CHAR_EQS(a, b) ((a) == (b)\
-+                      || (SLSMG_EXTRACT_CHAR(a) == SLSMG_EXTRACT_CHAR(b)\
-+                          && COLOR_EQS((a), (b))))
-+#else
- #define CHAR_EQS(a, b) (((a) == (b))\
-                       || ((CHAR_OF(a)==CHAR_OF(b)) && COLOR_EQS(a,b)))
-+#endif
- /* The whole point of this routine is to prevent writing to the last column
-  * and last row on terminals with automatic margins.
-@@ -1488,9 +1506,58 @@
-    tt_write (str, len);
- }
-+#ifdef UTF8
-+/* FIXME: This duplicates the function above
-+ */
-+static void write_wstring_with_care (SLsmg_Char_Type *str, unsigned int len)
-+{
-+   mbstate_t mbstate;
-+
-+   if (str == NULL) return;
-+
-+   if (Automatic_Margins && (Cursor_r + 1 == SLtt_Screen_Rows))
-+     {
-+      if (len + (unsigned int) Cursor_c >= (unsigned int) SLtt_Screen_Cols)
-+        {
-+           /* For now, just do not write there.  Later, something more
-+            * sophisticated will be implemented.
-+            */
-+           if (SLtt_Screen_Cols > Cursor_c)
-+             {
-+                len = SLtt_Screen_Cols - Cursor_c - 1;
-+                while (len > 0 && str[len] == SLSMG_NOCHAR)
-+                  --len;
-+             }
-+           else len = 0;
-+        }
-+     }
-+
-+   memset (&mbstate, 0, sizeof (mbstate));
-+   while (len--)
-+     {
-+        SLsmg_Char_Type c = *str++;
-+      char buf[MB_LEN_MAX];
-+      size_t n;
-+
-+      if (c == SLSMG_NOCHAR)
-+        continue;
-+
-+      n = wcrtomb (buf, c, &mbstate);
-+      if (n == (size_t)(-1))
-+        break;
-+
-+      tt_write(buf, n);
-+     }
-+}
-+#endif /* UTF8 */
-+
- static void send_attr_str (SLsmg_Char_Type *s)
- {
-+#ifdef UTF8
-+   SLsmg_Char_Type out[SLTT_MAX_SCREEN_COLS], ch, *p;
-+#else
-    unsigned char out[SLTT_MAX_SCREEN_COLS], ch, *p;
-+#endif /* UTF8 */
-    register SLtt_Char_Type attr;
-    register SLsmg_Char_Type sh;
-    int color, last_color = -1;
-@@ -1498,8 +1565,13 @@
-    p = out;
-    while (0 != (sh = *s++))
-      {
-+#ifdef UTF8
-+      ch = SLSMG_EXTRACT_CHAR(sh);
-+      color = SLSMG_EXTRACT_COLOR(sh);
-+#else
-       ch = sh & 0xFF;
-       color = ((int) sh & 0xFF00) >> 8;
-+#endif
- #if SLTT_HAS_NON_BCE_SUPPORT
-       if (Bce_Color_Offset
-@@ -1511,8 +1583,12 @@
-         {
-            if (SLtt_Use_Ansi_Colors) attr = Ansi_Color_Map[color & 0x7F].fgbg;
-            else attr = Ansi_Color_Map[color & 0x7F].mono;
--
-+ 
-+#ifdef UTF8
-+           if (SLSMG_EXTRACT_COLOR(sh) & 0x80) /* alternate char set */
-+#else
-            if (sh & 0x8000) /* alternate char set */
-+#endif
-              {
-                 if (SLtt_Use_Blink_For_ACS)
-                   {
-@@ -1534,8 +1610,12 @@
-                   {
-                      if (p != out)
-                        {
-+#ifdef UTF8
-+                          write_wstring_with_care (out, p-out);
-+#else
-                           *p = 0;
-                           write_string_with_care ((char *) out);
-+#endif
-                           Cursor_c += (int) (p - out);
-                           p = out;
-                        }
-@@ -1558,8 +1638,12 @@
-         }
-       *p++ = ch;
-      }
-+#ifdef UTF8
-+   if (p != out) write_wstring_with_care (out, p-out);
-+#else
-    *p = 0;
-    if (p != out) write_string_with_care ((char *) out);
-+#endif
-    Cursor_c += (int) (p - out);
- }
-@@ -1686,7 +1770,11 @@
-       while (qq < qmax)
-         {
-+#ifdef UTF8
-+           if (SLSMG_EXTRACT_COLOR(*qq))
-+#else
-            if (*qq & 0xFF00)
-+#endif
-              {
-                 SLtt_normal_video ();
-                 SLtt_del_eol ();
-@@ -1701,7 +1789,11 @@
-    /* Find where the last non-blank character on old/new screen is */
-    space_char = ' ';
-+#ifdef UTF8
-+   if (SLSMG_EXTRACT_CHAR(*(pmax-1)) == ' ')
-+#else
-    if (CHAR_EQS(*(pmax-1), ' '))
-+#endif
-      {
-       /* If we get here, then we can erase to the end of the line to create
-        * the final space.  However, this will only work _if_ erasing will 
-@@ -1752,7 +1844,11 @@
-      {
- #endif
-       /* Try use use erase to bol if possible */
-+#ifdef UTF8
-+      if ((Del_Bol_Str != NULL) && (SLSMG_EXTRACT_CHAR(*neww) == ' '))
-+#else
-       if ((Del_Bol_Str != NULL) && (CHAR_OF(*neww) == ' '))
-+#endif
-         {
-            SLsmg_Char_Type *p1;
-            SLsmg_Char_Type blank;
-@@ -1781,7 +1877,11 @@
-                 q = oldd + ofs;
-                 p = p1;
-                 SLtt_goto_rc (row, ofs - 1);
-+#ifdef UTF8
-+                SLtt_reverse_video (SLSMG_EXTRACT_COLOR (blank));
-+#else
-                 SLtt_reverse_video (COLOR_OF(blank));
-+#endif
-                 tt_write_string (Del_Bol_Str);
-                 tt_write (" ", 1);
-                 Cursor_c += 1;
-@@ -1978,7 +2078,11 @@
-    if (q < qmax) 
-      {
-+#ifdef UTF8
-+      SLtt_reverse_video (SLSMG_EXTRACT_COLOR (space_char));
-+#else
-       SLtt_reverse_video (COLOR_OF(space_char));
-+#endif
-       del_eol ();
-      }
-    
diff --git a/src/patches/slang-utf8-acs.patch b/src/patches/slang-utf8-acs.patch
deleted file mode 100644 (file)
index dc8a851..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
---- slang-1.4.5/src/slang.h.acs        2002-07-09 00:03:57.000000000 -0400
-+++ slang-1.4.5/src/slang.h    2002-07-09 00:11:06.000000000 -0400
-@@ -1255,6 +1255,8 @@
- #ifdef UTF8
- typedef int SLsmg_Char_Type;
-+extern SLtt_Char_Type SLcurses_Acs_Map [128];
-+#define acs_map SLcurses_Acs_Map
- #define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFFFFFF)
- #define SLSMG_EXTRACT_COLOR(x) (((x)>>24)&0xFF)
- #define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(wchar_t)(ch))|((color)<<24))
-@@ -1396,7 +1398,11 @@
- extern void SLsmg_set_screen_start (int *, int *);
- extern void SLsmg_draw_hline (unsigned int);
- extern void SLsmg_draw_vline (int);
-+#ifdef UTF8
-+extern void SLsmg_draw_object (int, int, SLsmg_Char_Type);
-+#else
- extern void SLsmg_draw_object (int, int, unsigned char);
-+#endif
- extern void SLsmg_draw_box (int, int, unsigned int, unsigned int);
- extern int SLsmg_get_column(void);
- extern int SLsmg_get_row(void);
-@@ -1408,6 +1414,9 @@
- extern int SLsmg_Display_Eight_Bit;
- extern int SLsmg_Tab_Width;
-+extern int SLsmg_Is_Unicode;
-+extern int SLsmg_Setlocale;
-+
- #define SLSMG_NEWLINE_IGNORED 0      /* default */
- #define SLSMG_NEWLINE_MOVES   1      /* moves to next line, column 0 */
- #define SLSMG_NEWLINE_SCROLLS 2      /* moves but scrolls at bottom of screen */
-@@ -1465,31 +1474,79 @@
- #  define SLSMG_BOARD_CHAR    '#'
- #  define SLSMG_BLOCK_CHAR    '#'
- # else
--#  define SLSMG_HLINE_CHAR    'q'
--#  define SLSMG_VLINE_CHAR    'x'
--#  define SLSMG_ULCORN_CHAR   'l'
--#  define SLSMG_URCORN_CHAR   'k'
--#  define SLSMG_LLCORN_CHAR   'm'
--#  define SLSMG_LRCORN_CHAR   'j'
--#  define SLSMG_CKBRD_CHAR    'a'
--#  define SLSMG_RTEE_CHAR     'u'
--#  define SLSMG_LTEE_CHAR     't'
--#  define SLSMG_UTEE_CHAR     'w'
--#  define SLSMG_DTEE_CHAR     'v'
--#  define SLSMG_PLUS_CHAR     'n'
--#  define SLSMG_DIAMOND_CHAR  '`'
--#  define SLSMG_DEGREE_CHAR   'f'
--#  define SLSMG_PLMINUS_CHAR  'g'
--#  define SLSMG_BULLET_CHAR   '~'
--#  define SLSMG_LARROW_CHAR   ','
--#  define SLSMG_RARROW_CHAR   '+'
--#  define SLSMG_DARROW_CHAR   '.'
--#  define SLSMG_UARROW_CHAR   '-'
--#  define SLSMG_BOARD_CHAR    'h'
--#  define SLSMG_BLOCK_CHAR    '0'
-+#  define SLSMG_HLINE_CHAR    (acs_map['q'])
-+#  define SLSMG_VLINE_CHAR    (acs_map['x'])
-+#  define SLSMG_ULCORN_CHAR   (acs_map['l'])
-+#  define SLSMG_URCORN_CHAR   (acs_map['k'])
-+#  define SLSMG_LLCORN_CHAR   (acs_map['m'])
-+#  define SLSMG_LRCORN_CHAR   (acs_map['j'])
-+#  define SLSMG_CKBRD_CHAR    (acs_map['a'])
-+#  define SLSMG_RTEE_CHAR     (acs_map['u'])
-+#  define SLSMG_LTEE_CHAR     (acs_map['t'])
-+#  define SLSMG_UTEE_CHAR     (acs_map['v'])
-+#  define SLSMG_DTEE_CHAR     (acs_map['w'])
-+#  define SLSMG_PLUS_CHAR     (acs_map['n'])
-+#  define SLSMG_DIAMOND_CHAR  (acs_map['`'])
-+#  define SLSMG_DEGREE_CHAR   (acs_map['f'])
-+#  define SLSMG_PLMINUS_CHAR  (acs_map['g'])
-+#  define SLSMG_BULLET_CHAR   (acs_map['~'])
-+#  define SLSMG_LARROW_CHAR   (acs_map[','])
-+#  define SLSMG_RARROW_CHAR   (acs_map['+'])
-+#  define SLSMG_DARROW_CHAR   (acs_map['.'])
-+#  define SLSMG_UARROW_CHAR   (acs_map['-'])
-+#  define SLSMG_BOARD_CHAR    (acs_map['h'])
-+#  define SLSMG_BLOCK_CHAR    (acs_map['0'])
-+#
-+#  define SLSMG_HLINE_CHAR_TERM       'q'
-+#  define SLSMG_VLINE_CHAR_TERM       'x'
-+#  define SLSMG_ULCORN_CHAR_TERM      'l'
-+#  define SLSMG_URCORN_CHAR_TERM      'k'
-+#  define SLSMG_LLCORN_CHAR_TERM      'm'
-+#  define SLSMG_LRCORN_CHAR_TERM      'j'
-+#  define SLSMG_CKBRD_CHAR_TERM       'a'
-+#  define SLSMG_RTEE_CHAR_TERM        'u'
-+#  define SLSMG_LTEE_CHAR_TERM        't'
-+#  define SLSMG_UTEE_CHAR_TERM        'v'
-+#  define SLSMG_DTEE_CHAR_TERM        'w'
-+#  define SLSMG_PLUS_CHAR_TERM        'n'
-+#  define SLSMG_DIAMOND_CHAR_TERM     '`'
-+#  define SLSMG_DEGREE_CHAR_TERM      'f'
-+#  define SLSMG_PLMINUS_CHAR_TERM     'g'
-+#  define SLSMG_BULLET_CHAR_TERM      '~'
-+#  define SLSMG_LARROW_CHAR_TERM      ','
-+#  define SLSMG_RARROW_CHAR_TERM      '+'
-+#  define SLSMG_DARROW_CHAR_TERM      '.'
-+#  define SLSMG_UARROW_CHAR_TERM      '-'
-+#  define SLSMG_BOARD_CHAR_TERM       'h'
-+#  define SLSMG_BLOCK_CHAR_TERM       '0'
- # endif                                      /* AMIGA */
- #endif                                       /* IBMPC_SYSTEM */
-+#ifdef UTF8
-+# define SLSMG_HLINE_CHAR_UNICODE     0x2500
-+# define SLSMG_VLINE_CHAR_UNICODE     0x2502
-+# define SLSMG_ULCORN_CHAR_UNICODE    0x250c
-+# define SLSMG_URCORN_CHAR_UNICODE    0x2510
-+# define SLSMG_LLCORN_CHAR_UNICODE    0x2514
-+# define SLSMG_LRCORN_CHAR_UNICODE    0x2518
-+# define SLSMG_RTEE_CHAR_UNICODE      0x2524
-+# define SLSMG_LTEE_CHAR_UNICODE      0x251c
-+# define SLSMG_UTEE_CHAR_UNICODE      0x2534
-+# define SLSMG_DTEE_CHAR_UNICODE      0x252c
-+# define SLSMG_PLUS_CHAR_UNICODE      0x253c
-+# define SLSMG_CKBRD_CHAR_UNICODE     0x2592
-+# define SLSMG_DIAMOND_CHAR_UNICODE   0x25c6
-+# define SLSMG_DEGREE_CHAR_UNICODE    0x00b0
-+# define SLSMG_PLMINUS_CHAR_UNICODE   0x00b1
-+# define SLSMG_BULLET_CHAR_UNICODE    0x00b7
-+# define SLSMG_LARROW_CHAR_UNICODE    0x2190
-+# define SLSMG_RARROW_CHAR_UNICODE    0x2192
-+# define SLSMG_DARROW_CHAR_UNICODE    0x2193
-+# define SLSMG_UARROW_CHAR_UNICODE    0x2191
-+# define SLSMG_BOARD_CHAR_UNICODE     0x2592
-+# define SLSMG_BLOCK_CHAR_UNICODE     0x25ae
-+#endif
-+
- #ifndef IBMPC_SYSTEM
- # define SLSMG_COLOR_BLACK            0x000000
- # define SLSMG_COLOR_RED              0x000001
---- slang-1.4.5/src/slcurses.c.acs     2002-07-09 00:03:57.000000000 -0400
-+++ slang-1.4.5/src/slcurses.c 2002-07-09 00:09:03.000000000 -0400
-@@ -331,40 +331,63 @@
-    /* SLtt_set_mono (A_BLINK >> 8, NULL, SLTT_BLINK_MASK); */
-    SLtt_set_mono ((A_BOLD|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_BOLD_MASK);
-    SLtt_set_mono ((A_REVERSE|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_REV_MASK);
-+   
-+   SLcurses_init_acs_map();
-+
-+   return SLcurses_Stdscr;
-+}
-+void SLcurses_init_acs_map()
-+{
-    if (SLtt_Has_Alt_Charset)
-      {
--       SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = SLSMG_ULCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = SLSMG_URCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = SLSMG_LLCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = SLSMG_LRCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = SLSMG_UTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = SLSMG_DTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = SLSMG_LTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = SLSMG_RTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = SLSMG_VLINE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = SLSMG_HLINE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = SLSMG_PLUS_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = SLSMG_CKBRD_CHAR | A_ALTCHARSET;
-+       if (SLsmg_Is_Unicode)
-+         {
-+           SLcurses_Acs_Map['l'] = SLSMG_ULCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['k'] = SLSMG_URCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['m'] = SLSMG_LLCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['j'] = SLSMG_LRCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['v'] = SLSMG_UTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['w'] = SLSMG_DTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['t'] = SLSMG_LTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['u'] = SLSMG_RTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['x'] = SLSMG_VLINE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['q'] = SLSMG_HLINE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['n'] = SLSMG_PLUS_CHAR_UNICODE;
-+           SLcurses_Acs_Map['a'] = SLSMG_CKBRD_CHAR_UNICODE;
-+         }
-+       else
-+       {
-+           SLcurses_Acs_Map['l'] = SLSMG_ULCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['k'] = SLSMG_URCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['m'] = SLSMG_LLCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['j'] = SLSMG_LRCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['v'] = SLSMG_UTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['w'] = SLSMG_DTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['t'] = SLSMG_LTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['u'] = SLSMG_RTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['x'] = SLSMG_VLINE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['q'] = SLSMG_HLINE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['n'] = SLSMG_PLUS_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['a'] = SLSMG_CKBRD_CHAR_TERM | A_ALTCHARSET;
-+         }
-      }
-    else
-      {
-        /* ugly defaults to use on terminals which don't support graphics */
--       SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = '|';
--       SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = '-';
--       SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = '#';
-+       SLcurses_Acs_Map['l'] = '+';
-+       SLcurses_Acs_Map['k'] = '+';
-+       SLcurses_Acs_Map['m'] = '+';
-+       SLcurses_Acs_Map['j'] = '+';
-+       SLcurses_Acs_Map['v'] = '+';
-+       SLcurses_Acs_Map['w'] = '+';
-+       SLcurses_Acs_Map['t'] = '+';
-+       SLcurses_Acs_Map['u'] = '+';
-+       SLcurses_Acs_Map['x'] = '|';
-+       SLcurses_Acs_Map['q'] = '-';
-+       SLcurses_Acs_Map['n'] = '+';
-+       SLcurses_Acs_Map['a'] = '#';
-      }
--
--   return SLcurses_Stdscr;
- }
- int SLcurses_wattrset (SLcurses_Window_Type *w, SLtt_Char_Type ch)
---- slang-1.4.5/src/slcurses.h.acs     2002-02-10 02:39:19.000000000 -0500
-+++ slang-1.4.5/src/slcurses.h 2002-07-09 00:03:57.000000000 -0400
-@@ -141,6 +141,7 @@
- extern int SLcurses_nodelay (SLcurses_Window_Type *, int);
- extern SLcurses_Window_Type *SLcurses_initscr (void);
-+extern void SLcurses_init_acs_map (void);
- #define initscr SLcurses_initscr
- extern int SLcurses_cbreak (void);
-@@ -222,21 +222,21 @@
- extern SLtt_Char_Type SLcurses_Acs_Map [128];
- #define acs_map SLcurses_Acs_Map
--#define ACS_ULCORNER (acs_map[SLSMG_ULCORN_CHAR])
--#define ACS_URCORNER (acs_map[SLSMG_URCORN_CHAR])
--#define ACS_LRCORNER (acs_map[SLSMG_LRCORN_CHAR])
--#define ACS_LLCORNER (acs_map[SLSMG_LLCORN_CHAR])
--#define ACS_TTEE (acs_map[SLSMG_UTEE_CHAR])
--#define ACS_LTEE (acs_map[SLSMG_LTEE_CHAR])
--#define ACS_RTEE (acs_map[SLSMG_RTEE_CHAR])
--#define ACS_BTEE (acs_map[SLSMG_DTEE_CHAR])
--#define ACS_PLUS (acs_map[SLSMG_PLUS_CHAR])
--#define ACS_VLINE (acs_map[SLSMG_VLINE_CHAR])
--#define ACS_HLINE (acs_map[SLSMG_HLINE_CHAR])
-+#define ACS_ULCORNER SLSMG_ULCORN_CHAR
-+#define ACS_URCORNER SLSMG_URCORN_CHAR
-+#define ACS_LRCORNER SLSMG_LRCORN_CHAR
-+#define ACS_LLCORNER SLSMG_LLCORN_CHAR
-+#define ACS_TTEE SLSMG_UTEE_CHAR
-+#define ACS_LTEE SLSMG_LTEE_CHAR
-+#define ACS_RTEE SLSMG_RTEE_CHAR
-+#define ACS_BTEE SLSMG_DTEE_CHAR
-+#define ACS_PLUS SLSMG_PLUS_CHAR
-+#define ACS_VLINE SLSMG_VLINE_CHAR
-+#define ACS_HLINE SLSMG_HLINE_CHAR
- #define ACS_S1                '-'
- #define ACS_S9                '-'
- #define ACS_DIAMOND           '&'
--#define ACS_CKBOARD           (acs_map[SLSMG_CKBRD_CHAR])
-+#define ACS_CKBOARD           SLSMG_CKBRD_CHAR
- #define ACS_DEGREE            'o'
- #define ACS_PLMINUS           '+'
- #define ACS_BULLET            '*'
---- slang-1.4.5/src/slsmg.c.acs        2002-07-09 00:03:57.000000000 -0400
-+++ slang-1.4.5/src/slsmg.c    2002-07-09 00:03:57.000000000 -0400
-@@ -10,6 +10,9 @@
- #include "slang.h"
- #include "_slang.h"
-+#include "slcurses.h"
-+
-+#include <locale.h>
- typedef struct Screen_Type
-   {
-@@ -44,9 +47,9 @@
-                                       */
- #ifndef IBMPC_SYSTEM
--#define ALT_CHAR_FLAG 0x80
-+static int ALT_CHAR_FLAG=0x80;
- #else
--#define ALT_CHAR_FLAG 0x00
-+static int ALT_CHAR_FLAG=0x00;
- #endif
- #if SLTT_HAS_NON_BCE_SUPPORT && !defined(IBMPC_SYSTEM)
-@@ -54,6 +57,8 @@
- static int Bce_Color_Offset;
- #endif
-+int SLsmg_Is_Unicode = 0;
-+int SLsmg_Setlocale = 1;
- int SLsmg_Newline_Behavior = 0;
- int SLsmg_Backspace_Moves = 0;
- /* Backward compatibility. Not used. */
-@@ -184,6 +189,8 @@
-      return;/* alt chars not used and the alt bit
-            * is used to indicate a blink.
-            */
-+   if (SLsmg_Is_Unicode)
-+       ALT_CHAR_FLAG=0x00;
-    if (i) This_Alt_Char = ALT_CHAR_FLAG;
-    else This_Alt_Char = 0;
-@@ -348,6 +355,8 @@
- #ifndef IBMPC_SYSTEM
-    int alt_char_set_flag;
-+   if (SLsmg_Is_Unicode)
-+     ALT_CHAR_FLAG = 0x00;
-    alt_char_set_flag = ((This_Color & ALT_CHAR_FLAG)
-                       && ((tt_Use_Blink_For_ACS == NULL)
-                           || (*tt_Use_Blink_For_ACS == 0)));
-@@ -1221,6 +1230,20 @@
-    Smg_Inited = 0;
- }
-+static void SLsmg_check_unicode(void)
-+{
-+    char *s,*t;
-+    
-+    if (SLsmg_Setlocale)
-+              s = setlocale(LC_ALL, "");
-+    else
-+              s = setlocale(LC_ALL, NULL);
-+    if (s && (strstr(s,"UTF-8") || strstr(s,"utf8"))) {
-+          SLsmg_Is_Unicode = 1;
-+          return;
-+    }
-+    SLsmg_Is_Unicode = 0;
-+}
- static int init_smg (void)
- {
-@@ -1242,6 +1265,8 @@
-    This_Col = This_Row = Start_Col = Start_Row = 0;
-    This_Alt_Char = 0;
-+   SLsmg_check_unicode ();
-+   SLcurses_init_acs_map ();
-    SLsmg_set_color (0);
-    Cls_Flag = 1;
- #ifndef IBMPC_SYSTEM
-@@ -1386,7 +1411,11 @@
-      }
- }
-+#ifdef UTF8
-+void SLsmg_draw_object (int r, int c, SLsmg_Char_Type object)
-+#else
- void SLsmg_draw_object (int r, int c, unsigned char object)
-+#endif
- {
-    This_Row = r;  This_Col = c;
-@@ -1405,7 +1434,7 @@
- void SLsmg_draw_hline (unsigned int n)
- {
--   static unsigned char hbuf[16];
-+   SLsmg_Char_Type ch = SLSMG_HLINE_CHAR;
-    int count;
-    int cmin, cmax;
-    int final_col = This_Col + (int) n;
-@@ -1421,11 +1450,6 @@
-       return;
-      }
--   if (hbuf[0] == 0)
--     {
--      SLMEMSET ((char *) hbuf, SLSMG_HLINE_CHAR, 16);
--     }
--
-    n = (unsigned int)(cmax - cmin);
-    count = n / 16;
-@@ -1433,10 +1457,10 @@
-    This_Color |= ALT_CHAR_FLAG;
-    This_Col = cmin;
--   SLsmg_write_nchars ((char *) hbuf, n % 16);
--   while (count-- > 0)
-+   SLsmg_draw_object(This_Row, This_Col, ch);
-+   while (n-- > 0)
-      {
--      SLsmg_write_nchars ((char *) hbuf, 16);
-+      SLsmg_draw_object(This_Row, This_Col, ch);
-      }
-    This_Color = save_color;
-@@ -1445,7 +1469,7 @@
- void SLsmg_draw_vline (int n)
- {
--   unsigned char ch = SLSMG_VLINE_CHAR;
-+   SLsmg_Char_Type ch = SLSMG_VLINE_CHAR;
-    int c = This_Col, rmin, rmax;
-    int final_row = This_Row + n;
-    int save_color;
-@@ -1466,7 +1490,7 @@
-    for (This_Row = rmin; This_Row < rmax; This_Row++)
-      {
-       This_Col = c;
--      SLsmg_write_nchars ((char *) &ch, 1);
-+      SLsmg_draw_object (This_Row, This_Col, ch);
-      }
-    This_Col = c;  This_Row = final_row;
diff --git a/src/patches/slang-utf8-fix.patch b/src/patches/slang-utf8-fix.patch
deleted file mode 100644 (file)
index 6c0a80f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- slang-1.4.5/src/slsmg.c.jj 2003-02-21 12:11:37.000000000 -0500
-+++ slang-1.4.5/src/slsmg.c    2003-02-21 14:09:28.000000000 -0500
-@@ -378,8 +378,10 @@ void SLsmg_write_nwchars (wchar_t *str, 
-   for (i = 0; i < n; i++, str) {
-     ch = *str++;
- #ifndef IBMPC_SYSTEM
--    if (alt_char_set_flag)
-+    if (alt_char_set_flag) {
-       ch = Alt_Char_Set[ch & 0x7F];
-+      w = 1;
-+    } else
- #endif
-     w = wcwidth(ch);
---- slang-1.4.5/src/sldisply.c.jj      2003-02-21 12:11:37.000000000 -0500
-+++ slang-1.4.5/src/sldisply.c 2003-02-21 15:51:43.000000000 -0500
-@@ -1498,6 +1498,17 @@ static void write_wstring_with_care (SLs
-         }
-      }
-+   if (Current_Fgbg & SLTT_ALTC_MASK)
-+     {
-+      char c;
-+      while (len--)
-+        {
-+           c = *str++;
-+           tt_write(&c, 1);
-+        }
-+      return;
-+     }
-+
-    memset (&mbstate, 0, sizeof (mbstate));
-    while (len--)
-      {
diff --git a/src/setup/.tx/config b/src/setup/.tx/config
new file mode 100644 (file)
index 0000000..085cca6
--- /dev/null
@@ -0,0 +1,7 @@
+[main]
+host = https://www.transifex.com
+
+[ipfire.setup]
+file_filter = po/<lang>.po
+source_file = po/setup.pot
+source_lang = en
similarity index 96%
rename from src/install+setup/setup/Makefile
rename to src/setup/Makefile
index 924da77dbe1cb7a13af3310b5ef8974e1816f92b..fe42e915d90621aee452d4b5a2dfeecc63ffb07b 100644 (file)
@@ -24,7 +24,7 @@ INCLUDE =
 
 LD      = gcc
 LDFLAGS = 
-LIBS    = -lnewt -lslang
+LIBS    = -lnewt -lslang -lsmooth
 
 COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS)
 
@@ -40,7 +40,7 @@ clean :
 ######
 
 OBJS=main.o hostname.o domainname.o passwords.o networking.o misc.o \
-       dhcp.o keymap.o timezone.o ../libsmooth/libsmooth.o
+       dhcp.o keymap.o timezone.o netstuff.o
 
 setup: $(OBJS)
        $(LINK) $(OBJS) -o $@ $(LIBS)
diff --git a/src/setup/Makefile.am b/src/setup/Makefile.am
new file mode 100644 (file)
index 0000000..0ead631
--- /dev/null
@@ -0,0 +1,58 @@
+#  This file is part of the setup tool.
+#
+#  setup 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.
+
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+AM_MAKEFLAGS = --no-print-directory
+AUTOMAKE_OPTIONS = color-tests parallel-tests
+
+SUBDIRS = . po
+
+# remove targets if the command fails
+.DELETE_ON_ERROR:
+
+# keep intermediate files
+.SECONDARY:
+
+AM_CPPFLAGS = \
+       -include $(top_builddir)/config.h \
+       $(OUR_CPPFLAGS)
+
+AM_CFLAGS = $(OUR_CFLAGS)
+AM_CXXFLAGS = $(OUR_CXXFLAGS)
+AM_LDFLAGS = $(OUR_LDFLAGS)
+
+bin_SCRIPTS =
+sbin_PROGRAMS =
+
+#- setup -----------------------------------------------------------------------
+
+sbin_PROGRAMS += \
+       setup
+
+setup_SOURCES = \
+       dhcp.c \
+       domainname.c \
+       hostname.c \
+       keymap.c \
+       main.c \
+       misc.c \
+       netstuff.c \
+       networking.c \
+       passwords.c \
+       setup.h \
+       timezone.c
+
+setup_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(LIBSMOOTH_CFLAGS)
+
+setup_LDADD = \
+       $(LIBSMOOTH_LIBS) \
+       $(NEWT_LIBS)
+
+bin_SCRIPTS += \
+       probenic.sh
diff --git a/src/setup/autogen.sh b/src/setup/autogen.sh
new file mode 100755 (executable)
index 0000000..3065488
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+autoreconf --force --install -I m4
diff --git a/src/setup/configure.ac b/src/setup/configure.ac
new file mode 100644 (file)
index 0000000..6f7c31b
--- /dev/null
@@ -0,0 +1,92 @@
+#  This file is part of the setup tool.
+#
+#  setup 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.
+
+AC_PREREQ([2.64])
+
+AC_INIT([setup],
+       [001],
+       [],
+       [setup],
+       [http://git.ipfire.org/?p=ipfire-2.x.git;a=summary])
+
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR([build-aux])
+
+AM_INIT_AUTOMAKE([
+       foreign
+       1.11
+       -Wall
+       -Wno-portability
+       silent-rules
+       tar-pax
+       no-dist-gzip
+       dist-xz
+       subdir-objects
+])
+AM_SILENT_RULES([yes])
+
+LT_PREREQ(2.2)
+LT_INIT([disable-static])
+
+AC_PROG_CC
+AC_PROG_CC_C99
+AC_PROG_CC_C_O
+
+AC_PATH_PROG([M4], [m4])
+
+# Gettext
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.18])
+AC_CHECK_HEADERS([libintl.h])
+
+# This makes sure pkg.m4 is available.
+m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
+
+# newt
+LIBS=
+AC_SEARCH_LIBS([newtWinMenu], [newt], [], [AC_MSG_ERROR([*** newt library not found])])
+NEWT_LIBS="$LIBS"
+AC_SUBST(NEWT_LIBS)
+
+LIBS="$save_LIBS"
+
+PKG_CHECK_MODULES(LIBSMOOTH, [libsmooth])
+
+AC_ARG_WITH([distro-name],
+       AS_HELP_STRING([--with-distro-name] [The name of the distribution]),
+       AC_DEFINE_UNQUOTED([NAME], "$withval", [The name of the distribution]),
+       AC_MSG_ERROR([*** you need to set the name with --with-distro-name=]))
+
+AC_ARG_WITH([distro-sname],
+       AS_HELP_STRING([--with-distro-sname] [The short name of the distribution]),
+       AC_DEFINE_UNQUOTED([SNAME], "$withval", [The sname of the distribution]),
+       AC_MSG_ERROR([*** you need to set the sname with --with-distro-sname=]))
+
+AC_ARG_WITH([distro-slogan],
+       AS_HELP_STRING([--with-distro-slogan] [The slogan of the distribution]),
+       AC_DEFINE_UNQUOTED([SLOGAN], "$withval", [The slogan of the distribution]),
+       AC_MSG_ERROR([*** you need to set the slogan with --with-distro-slogan=]))
+
+AC_ARG_WITH([config-root],
+       AS_HELP_STRING([--with-distro-config-root] [The configuration directory]),
+       AC_DEFINE_UNQUOTED([CONFIG_ROOT], "$withval", [The config-root]),
+       AC_MSG_ERROR([*** you need to set CONFIG_ROOT with --with-config-root=]))
+
+AC_CONFIG_FILES([
+       Makefile
+       po/Makefile.in
+])
+
+AC_OUTPUT
+AC_MSG_RESULT([
+       $PACKAGE_NAME $VERSION
+
+       CFLAGS:                 ${OUR_CFLAGS} ${CFLAGS}
+       CPPFLAGS:               ${OUR_CPPFLAGS} ${CPPFLAGS}
+       LDFLAGS:                ${OUR_LDFLAGS} ${LDFLAGS}
+])
similarity index 78%
rename from src/install+setup/setup/dhcp.c
rename to src/setup/dhcp.c
index 332a807e7db2abc0ef760f73958f9aa7702d801c..22f471851f9aae336c22d036b293c230e80abcc5 100644 (file)
@@ -7,7 +7,11 @@
  * Stuff for setting up the DHCP server from the setup prog.
  * 
  */
+
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
 
 #define TOP 4
@@ -24,8 +28,6 @@
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern int automode;
 
 newtComponent dhcpform;
@@ -44,13 +46,24 @@ int handledhcp(void)
        newtComponent labels[MAX_BOXES];
        newtComponent ok, cancel;       
        char message[1000];
-       char *labeltexts[MAX_BOXES] = { ctr[TR_START_ADDRESS], ctr[TR_END_ADDRESS],
-               ctr[TR_PRIMARY_DNS], ctr[TR_SECONDARY_DNS], ctr[TR_DEFAULT_LEASE],
-               ctr[TR_MAX_LEASE], ctr[TR_DOMAIN_NAME_SUFFIX] };
-       char *varnames[MAX_BOXES] = { "START_ADDR_GREEN", "END_ADDR_GREEN", 
-               "DNS1_GREEN", "DNS2_GREEN",
-               "DEFAULT_LEASE_TIME_GREEN", "MAX_LEASE_TIME_GREEN", 
-               "DOMAIN_NAME_GREEN"};
+       char *labeltexts[MAX_BOXES] = {
+               _("Start address:"),
+               _("End address:"),
+               _("Primary DNS:"),
+               _("Secondary DNS:"),
+               _("Default lease (mins):"),
+               _("Max lease (mins):"),
+               _("Domain name suffix:")
+       };
+       char *varnames[MAX_BOXES] = {
+               "START_ADDR_GREEN",
+               "END_ADDR_GREEN",
+               "DNS1_GREEN",
+               "DNS2_GREEN",
+               "DEFAULT_LEASE_TIME_GREEN",
+               "MAX_LEASE_TIME_GREEN",
+               "DOMAIN_NAME_GREEN"
+       };
        char defaults[MAX_BOXES][STRING_SIZE]; 
        int result;
        int c;
@@ -70,14 +83,14 @@ int handledhcp(void)
        {
                freekeyvalues(dhcpkv);
                freekeyvalues(ethernetkv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
        if (!(readkeyvalues(ethernetkv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(dhcpkv);
                freekeyvalues(ethernetkv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
        if (!(readkeyvalues(mainkv, CONFIG_ROOT "/main/settings")))
@@ -85,7 +98,7 @@ int handledhcp(void)
                freekeyvalues(dhcpkv);
                freekeyvalues(ethernetkv);
                freekeyvalues(mainkv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
@@ -95,13 +108,13 @@ int handledhcp(void)
        strcpy(defaults[DEFAULT_LEASE_TIME], "60");
        strcpy(defaults[MAX_LEASE_TIME], "120");
 
-       sprintf(message, ctr[TR_DHCP_SERVER_CONFIGURATION]);
-       newtCenteredWindow(55, 18, message);
+       newtCenteredWindow(55, 18, _("DHCP server configuration"));
 
        dhcpform = newtForm(NULL, NULL, 0);
-       
-       sprintf(message, ctr[TR_CONFIGURE_DHCP]);
-       header = newtTextboxReflowed(1, 1, message, 52, 0, 0, 0);
+
+       header = newtTextboxReflowed(1, 1,
+               _("Configure the DHCP server by entering the settings information."),
+               52, 0, 0, 0);
        newtFormAddComponent(dhcpform, header);
 
        strcpy(temp, ""); findkey(dhcpkv, "ENABLE_GREEN", temp);
@@ -109,7 +122,7 @@ int handledhcp(void)
                startenabled = '*';
        else
                startenabled = ' ';
-       enabledcheckbox = newtCheckbox(2, TOP + 0, ctr[TR_ENABLED], startenabled, " *", &enabledresult);
+       enabledcheckbox = newtCheckbox(2, TOP + 0, _("Enabled"), startenabled, " *", &enabledresult);
        newtFormAddComponent(dhcpform, enabledcheckbox);
        newtComponentAddCallback(enabledcheckbox, dhcpdialogcallbackdhcp, NULL);                
 
@@ -126,13 +139,12 @@ int handledhcp(void)
                
        }
        
-       ok = newtButton(10, c + 7, ctr[TR_OK]);
-       cancel = newtButton(34, c + 7, ctr[TR_CANCEL]);
+       ok = newtButton(10, c + 7, _("OK"));
+       cancel = newtButton(34, c + 7, _("Cancel"));
 
        newtFormAddComponents(dhcpform, ok, cancel, NULL);
        
-       do
-       {
+       do {
                error = 0;
                newtFormRun(dhcpform, &es);
        
@@ -141,22 +153,25 @@ int handledhcp(void)
                        /* OK was pressed; verify the contents of each entry. */                
                        if (enabledresult == '*')
                        {
-                               strcpy(message, ctr[TR_INVALID_FIELDS]);                        
+                               strcpy(message, _("The following fields are invalid:\n\n"));
                                if (inet_addr(results[START_ADDRESS]) == INADDR_NONE)
                                {
-                                       strcat(message, ctr[TR_START_ADDRESS_CR]);
+                                       strcat(message, _("Start address"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                                if (inet_addr(results[END_ADDRESS]) == INADDR_NONE)
                                {
-                                       strcat(message, ctr[TR_END_ADDRESS_CR]);
+                                       strcat(message, _("End address"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                                if (strlen(results[SECONDARY_DNS]))
                                {
                                        if (inet_addr(results[PRIMARY_DNS]) == INADDR_NONE)
                                        {
-                                               strcat(message, ctr[TR_PRIMARY_DNS_CR]);
+                                               strcat(message, _("Primary DNS"));
+                                               strcat(message, "\n");
                                                error = 1;
                                        }
                                }
@@ -164,18 +179,21 @@ int handledhcp(void)
                                {
                                        if (inet_addr(results[SECONDARY_DNS]) == INADDR_NONE)
                                        {
-                                               strcat(message, ctr[TR_SECONDARY_DNS_CR]);
+                                               strcat(message, _("Secondary DNS"));
+                                               strcat(message, "\n");
                                                error = 1;
                                        }
                                }
                                if (!(atol(results[DEFAULT_LEASE_TIME])))
                                {
-                                       strcat(message, ctr[TR_DEFAULT_LEASE_CR]);
+                                       strcat(message, _("Default lease time"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                                if (!(atol(results[MAX_LEASE_TIME])))
                                {
-                                       strcat(message, ctr[TR_MAX_LEASE_CR]);
+                                       strcat(message, _("Max. lease time"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                        }                               
@@ -191,13 +209,13 @@ int handledhcp(void)
                                        replacekeyvalue(dhcpkv, "ENABLE_GREEN", "on");
                                        fclose(fopen(CONFIG_ROOT "/dhcp/enable_green", "w"));
                                        chown(CONFIG_ROOT "/dhcp/enable_green", 99, 99);
-                                       mysystem("/usr/local/bin/dhcpctrl enable");
+                                       mysystem(NULL, "/usr/local/bin/dhcpctrl enable");
                                }
                                else
                                {
                                        replacekeyvalue(dhcpkv, "ENABLE_GREEN", "off");
                                        unlink(CONFIG_ROOT "/dhcp/enable_green");
-                                       mysystem("/usr/local/bin/dhcpctrl disable");
+                                       mysystem(NULL, "/usr/local/bin/dhcpctrl disable");
                                }
                                replacekeyvalue(dhcpkv, "VALID", "yes");
                                writekeyvalues(dhcpkv, CONFIG_ROOT "/dhcp/settings");
@@ -230,14 +248,13 @@ int handledhcp(void)
                                fclose(file);
                                chown(CONFIG_ROOT "/dhcp/dhcpd.conf", 99, 99);
                                if (automode == 0)
-                                       mysystem("/usr/local/bin/dhcpctrl enable");
+                                       mysystem(NULL, "/usr/local/bin/dhcpctrl enable");
                        }
                        result = 1;
                }
                else
                        result = 0;
-       }               
-       while (error);
+       } while (error);
        
        newtFormDestroy(dhcpform);
        newtPopWindow();
similarity index 73%
rename from src/install+setup/setup/domainname.c
rename to src/setup/domainname.c
index 9aedd9b49d064256872515688f59590159df47e0..38269d2a34188dd84007b35d5ebbb29b2e133f93 100644 (file)
@@ -6,14 +6,16 @@
  * $Id: domainname.c
  * 
  */
+
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
  
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern int automode;
 
 int handledomainname(void)
@@ -29,7 +31,7 @@ int handledomainname(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }       
        
@@ -37,19 +39,18 @@ int handledomainname(void)
        
        for (;;)
        {       
-               rc = newtWinEntries(ctr[TR_DOMAINNAME], ctr[TR_ENTER_DOMAINNAME],
-                       50, 5, 5, 40, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);       
+               rc = newtWinEntries(_("Domain name"), _("Enter Domain name"),
+                       50, 5, 5, 40, entries, _("OK"), _("Cancel"), NULL);     
                
-               if (rc == 1)
-               {
+               if (rc == 1) {
                        strcpy(domainname, values[0]);
                        if (!(strlen(domainname)))
-                               errorbox(ctr[TR_DOMAINNAME_CANNOT_BE_EMPTY]);
+                               errorbox(_("Domain name cannot be empty."));
                        else if (strchr(domainname, ' '))
-                               errorbox(ctr[TR_DOMAINNAME_CANNOT_CONTAIN_SPACES]);
+                               errorbox(_("Domain name cannot contain spaces."));
                        else if (strlen(domainname) != strspn(domainname,
                                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-."))
-                               errorbox(ctr[TR_DOMAINNAME_NOT_VALID_CHARS]);
+                               errorbox(_("Domain name may only contain letters, numbers, hyphens and periods."));
                        else
                        {
                                replacekeyvalue(kv, "DOMAINNAME", domainname);
similarity index 76%
rename from src/install+setup/setup/hostname.c
rename to src/setup/hostname.c
index 0165257367635c49143533771b82716d701b3264..7d7edc56b5f9ef3835b5195a3c558f2527d741ce 100644 (file)
@@ -9,14 +9,16 @@
  * $Id: hostname.c,v 1.6.2.1 2004/04/14 22:05:41 gespinasse Exp $
  * 
  */
+
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
  
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern int automode;
 
 int handlehostname(void)
@@ -32,7 +34,7 @@ int handlehostname(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }       
        
@@ -41,19 +43,19 @@ int handlehostname(void)
        
        for (;;)
        {
-               rc = newtWinEntries(ctr[TR_HOSTNAME], ctr[TR_ENTER_HOSTNAME],
-                       50, 5, 5, 40, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);
+               rc = newtWinEntries(_("Hostname"), _("Enter the machine's hostname."),
+                       50, 5, 5, 40, entries, _("OK"), _("Cancel"), NULL);
                
                if (rc == 1)
                {
                        strcpy(hostname, values[0]);
                        if (!(strlen(hostname)))
-                               errorbox(ctr[TR_HOSTNAME_CANNOT_BE_EMPTY]);
+                               errorbox(_("Hostname cannot be empty."));
                        else if (strchr(hostname, ' '))
-                               errorbox(ctr[TR_HOSTNAME_CANNOT_CONTAIN_SPACES]);
+                               errorbox(_("Hostname cannot contain spaces."));
                        else if (strlen(hostname) != strspn(hostname,
                                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-"))
-                               errorbox(ctr[TR_HOSTNAME_NOT_VALID_CHARS]);
+                               errorbox(_("Hostname may only contain letters, numbers and hyphens."));
                        else
                        {
                                replacekeyvalue(kv, "HOSTNAME", hostname);
similarity index 90%
rename from src/install+setup/setup/keymap.c
rename to src/setup/keymap.c
index b143492a1345df4a07d3968c79cf6b972765581c..d0030a3bc0d66c9a7ca549015090b429492b5ec1 100644 (file)
@@ -9,14 +9,16 @@
  * $Id: keymap.c,v 1.9.2.1 2004/04/14 22:05:41 gespinasse Exp $
  * 
  */
-   
+
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
  
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern int automode;
 
 #define MAX_FILENAMES 5000
@@ -65,7 +67,7 @@ int handlekeymap(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }       
        
@@ -79,8 +81,9 @@ int handlekeymap(void)
                        choice = c;
        }
        
-       rc = newtWinMenu(ctr[TR_KEYBOARD_MAPPING], ctr[TR_KEYBOARD_MAPPING_LONG], 50, 5, 5, 6, displaynames, &choice,
-               ctr[TR_OK], ctr[TR_CANCEL], NULL);
+       rc = newtWinMenu(_("Keyboard mapping"),
+               _("Choose the type of keyboard you are using from the list below."),
+               50, 5, 5, 6, displaynames, &choice, _("OK"), _("Cancel"), NULL);
 
        strcpy(keymap, filenames[choice]);
        
@@ -89,7 +92,7 @@ int handlekeymap(void)
                replacekeyvalue(kv, "KEYMAP", keymap);
                writekeyvalues(kv, CONFIG_ROOT "/main/settings");
                sprintf(commandstring, "/bin/loadkeys %s", keymap);
-               mysystem(commandstring);
+               mysystem(NULL, commandstring);
                result = 1;
        }
        else
diff --git a/src/setup/m4/attributes.m4 b/src/setup/m4/attributes.m4
new file mode 100644 (file)
index 0000000..7e080da
--- /dev/null
@@ -0,0 +1,288 @@
+dnl Macros to check the presence of generic (non-typed) symbols.
+dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
+dnl Copyright (c) 2006-2008 xine project
+dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+dnl 02110-1301, USA.
+dnl
+dnl As a special exception, the copyright owners of the
+dnl macro gives unlimited permission to copy, distribute and modify the
+dnl configure scripts that are the output of Autoconf when processing the
+dnl Macro. You need not follow the terms of the GNU General Public
+dnl License when using or distributing such scripts, even though portions
+dnl of the text of the Macro appear in them. The GNU General Public
+dnl License (GPL) does govern all other use of the material that
+dnl constitutes the Autoconf Macro.
+dnl
+dnl This special exception to the GPL applies to versions of the
+dnl Autoconf Macro released by this project. When you make and
+dnl distribute a modified version of the Autoconf Macro, you may extend
+dnl this special exception to the GPL to apply to your modified version as
+dnl well.
+
+dnl Check if FLAG in ENV-VAR is supported by compiler and append it
+dnl to WHERE-TO-APPEND variable
+dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG])
+
+AC_DEFUN([CC_CHECK_FLAG_APPEND], [
+  AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
+                 AS_TR_SH([cc_cv_$2_$3]),
+          [eval "AS_TR_SH([cc_save_$2])='${$2}'"
+           eval "AS_TR_SH([$2])='-Werror $3'"
+           AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a = 0; int main(void) { return a; } ])],
+                                    [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
+                                    [eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
+           eval "AS_TR_SH([$2])='$cc_save_$2'"])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes],
+        [eval "$1='${$1} $3'"])
+])
+
+dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2])
+AC_DEFUN([CC_CHECK_FLAGS_APPEND], [
+  for flag in $3; do
+    CC_CHECK_FLAG_APPEND($1, $2, $flag)
+  done
+])
+
+dnl Check if the flag is supported by linker (cacheable)
+dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+
+AC_DEFUN([CC_CHECK_LDFLAGS], [
+  AC_CACHE_CHECK([if $CC supports $1 flag],
+    AS_TR_SH([cc_cv_ldflags_$1]),
+    [ac_save_LDFLAGS="$LDFLAGS"
+     LDFLAGS="$LDFLAGS $1"
+     AC_LINK_IFELSE([int main() { return 1; }],
+       [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
+       [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
+     LDFLAGS="$ac_save_LDFLAGS"
+    ])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
+    [$2], [$3])
+])
+
+dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
+dnl the current linker to avoid undefined references in a shared object.
+AC_DEFUN([CC_NOUNDEFINED], [
+  dnl We check $host for which systems to enable this for.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  case $host in
+     dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
+     dnl are requested, as different implementations are present; to avoid problems
+     dnl use -Wl,-z,defs only for those platform not behaving this way.
+     *-freebsd* | *-openbsd*) ;;
+     *)
+        dnl First of all check for the --no-undefined variant of GNU ld. This allows
+        dnl for a much more readable commandline, so that people can understand what
+        dnl it does without going to look for what the heck -z defs does.
+        for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
+           CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
+           break
+        done
+     ;;
+  esac
+
+  AC_SUBST([LDFLAGS_NOUNDEFINED])
+])
+
+dnl Check for a -Werror flag or equivalent. -Werror is the GCC
+dnl and ICC flag that tells the compiler to treat all the warnings
+dnl as fatal. We usually need this option to make sure that some
+dnl constructs (like attributes) are not simply ignored.
+dnl
+dnl Other compilers don't support -Werror per se, but they support
+dnl an equivalent flag:
+dnl  - Sun Studio compiler supports -errwarn=%all
+AC_DEFUN([CC_CHECK_WERROR], [
+  AC_CACHE_CHECK(
+    [for $CC way to treat warnings as errors],
+    [cc_cv_werror],
+    [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
+      [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
+    ])
+])
+
+AC_DEFUN([CC_CHECK_ATTRIBUTE], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
+    AS_TR_SH([cc_cv_attribute_$1]),
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])],
+       [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
+       [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
+     CFLAGS="$ac_save_CFLAGS"
+    ])
+
+  AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
+    [AC_DEFINE(
+       AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
+         [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
+         )
+     $4],
+    [$5])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
+  CC_CHECK_ATTRIBUTE(
+    [constructor],,
+    [void __attribute__((constructor)) ctor() { int a; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
+  CC_CHECK_ATTRIBUTE(
+    [format], [format(printf, n, n)],
+    [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
+  CC_CHECK_ATTRIBUTE(
+    [format_arg], [format_arg(printf)],
+    [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
+  CC_CHECK_ATTRIBUTE(
+    [visibility_$1], [visibility("$1")],
+    [void __attribute__((visibility("$1"))) $1_function() { }],
+    [$2], [$3])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
+  CC_CHECK_ATTRIBUTE(
+    [nonnull], [nonnull()],
+    [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
+  CC_CHECK_ATTRIBUTE(
+    [unused], ,
+    [void some_function(void *foo, __attribute__((unused)) void *bar);],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
+  CC_CHECK_ATTRIBUTE(
+    [sentinel], ,
+    [void some_function(void *foo, ...) __attribute__((sentinel));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
+  CC_CHECK_ATTRIBUTE(
+    [deprecated], ,
+    [void some_function(void *foo, ...) __attribute__((deprecated));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
+  CC_CHECK_ATTRIBUTE(
+    [alias], [weak, alias],
+    [void other_function(void *foo) { }
+     void some_function(void *foo) __attribute__((weak, alias("other_function")));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
+  CC_CHECK_ATTRIBUTE(
+    [malloc], ,
+    [void * __attribute__((malloc)) my_alloc(int n);],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_PACKED], [
+  CC_CHECK_ATTRIBUTE(
+    [packed], ,
+    [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_CONST], [
+  CC_CHECK_ATTRIBUTE(
+    [const], ,
+    [int __attribute__((const)) twopow(int n) { return 1 << n; } ],
+    [$1], [$2])
+])
+
+AC_DEFUN([CC_FLAG_VISIBILITY], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
+    [cc_cv_flag_visibility],
+    [cc_flag_visibility_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
+     cc_cv_flag_visibility='yes',
+     cc_cv_flag_visibility='no')
+     CFLAGS="$cc_flag_visibility_save_CFLAGS"])
+
+  AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
+    [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
+       [Define this if the compiler supports the -fvisibility flag])
+     $1],
+    [$2])
+])
+
+AC_DEFUN([CC_FUNC_EXPECT], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([if compiler has __builtin_expect function],
+    [cc_cv_func_expect],
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+       [int some_function() {
+        int a = 3;
+        return (int)__builtin_expect(a, 3);
+     }])],
+       [cc_cv_func_expect=yes],
+       [cc_cv_func_expect=no])
+     CFLAGS="$ac_save_CFLAGS"
+    ])
+
+  AS_IF([test "x$cc_cv_func_expect" = "xyes"],
+    [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
+     [Define this if the compiler supports __builtin_expect() function])
+     $1],
+    [$2])
+])
+
+AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
+  AC_REQUIRE([CC_CHECK_WERROR])
+  AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
+    [cc_cv_attribute_aligned],
+    [ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $cc_cv_werror"
+     for cc_attribute_align_try in 64 32 16 8 4 2; do
+        AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+          int main() {
+            static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
+            return c;
+          }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
+     done
+     CFLAGS="$ac_save_CFLAGS"
+  ])
+
+  if test "x$cc_cv_attribute_aligned" != "x"; then
+     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
+       [Define the highest alignment supported])
+  fi
+])
similarity index 61%
rename from src/install+setup/setup/main.c
rename to src/setup/main.c
index d6531bdf083414f021f76d3e10e4d9257c0705c8..33f4d214201b5798e17034883f88122b4ed8742c 100644 (file)
@@ -8,41 +8,27 @@
  *
  */
 
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
 
 FILE *flog = NULL;
 char *mylog;
 
-char **ctr = NULL;
-
 int automode = 0;
 
 struct  nic  nics[20] = { { "" , "" , "" , "" } };
 struct knic knics[20] = { { "" , "" , "" , "" } };
 
-extern char *en_tr[];
-extern char *de_tr[];
-extern char *fr_tr[];
-extern char *es_tr[];
-extern char *pl_tr[];
-extern char *ru_tr[];
-extern char *nl_tr[];
-extern char *tr_tr[];
-
 int main(int argc, char *argv[])
 {
-#ifdef  LANG_EN_ONLY
-       char *shortlangnames[] = { "en", NULL };
-       char **langtrs[] = { en_tr, NULL };
-#else
-       char *shortlangnames[] = { "de", "en", "fr", "es", "nl", "pl", "ru", "tr", NULL };
-       char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, nl_tr, pl_tr, ru_tr, tr_tr, NULL };
-#endif
        int choice;
        char *sections[11]; /* need to fill this out AFTER knowning lang */
        int rc;
        struct keyvalue *kv;
-       char selectedshortlang[STRING_SIZE] = "en";
+       char lang[STRING_SIZE] = "en_US.utf8";
        char title[STRING_SIZE];
        int langcounter;
        int autook = 0;
@@ -73,37 +59,19 @@ int main(int argc, char *argv[])
                printf("%s is not properly installed.\n", NAME);
                return 1;
        }
-       findkey(kv, "LANGUAGE", selectedshortlang);
-
-       for (langcounter = 0; langtrs[langcounter]; langcounter++)
-       {
-               if (strcmp(selectedshortlang, shortlangnames[langcounter]) == 0)
-               {
-                       ctr = langtrs[langcounter];
-                       break;
-               }
-       }
-
-       if (!ctr)
-       {
-               for (choice = 0; shortlangnames[choice]; choice++)
-               {
-                       if (strcmp(shortlangnames[choice], "en") == 0)
-                               break;
-               }
-               if (!shortlangnames[choice])
-                       goto EXIT;
-               ctr = langtrs[choice];
-       }
-
-       sections[0] = ctr[TR_KEYBOARD_MAPPING];
-       sections[1] = ctr[TR_TIMEZONE];
-       sections[2] = ctr[TR_HOSTNAME];
-       sections[3] = ctr[TR_DOMAINNAME];
-       sections[4] = ctr[TR_NETWORKING];
-       sections[5] = ctr[TR_ISDN];
-       sections[6] = ctr[TR_ROOT_PASSWORD];
-       sections[7] = ctr[TR_ADMIN_PASSWORD];
+       findkey(kv, "LANGUAGE", lang);
+
+       setlocale(LC_ALL, lang);
+       setenv("LANGUAGE", lang, 1);
+
+       sections[0] = _("Keyboard mapping");
+       sections[1] = _("Timezone");
+       sections[2] = _("Hostname");
+       sections[3] = _("Domain name");
+       sections[4] = _("Networking");
+       sections[5] = _("ISDN");
+       sections[6] = _("'root' password");
+       sections[7] = _("'admin' password");
        sections[8] = NULL;
 
        newtInit();
@@ -116,19 +84,19 @@ int main(int argc, char *argv[])
                title[strlen(title) - 1] = '\0';
            fclose (f_title);
        } else {
-           sprintf (title, "%s %s - %s", NAME, VERSION, SLOGAN);
+           sprintf (title, "%s - %s", NAME, SLOGAN);
        }
        newtDrawRootText(14, 0, title);
-       newtPushHelpLine(ctr[TR_HELPLINE]);             
+       newtPushHelpLine(_("              <Tab>/<Alt-Tab> between elements   |  <Space> selects"));             
 
        if (automode == 0)
        {
                choice = 0;
                for (;;)
                {
-                       rc = newtWinMenu(ctr[TR_SECTION_MENU],
-                               ctr[TR_SELECT_THE_ITEM], 50, 5, 5, 11,
-                               sections, &choice, ctr[TR_OK], ctr[TR_QUIT], NULL);
+                       rc = newtWinMenu(_("Section menu"),
+                               _("Select the item you wish to configure."), 50, 5, 5, 11,
+                               sections, &choice, _("OK"), _("Quit"), NULL);
 
                        if (rc == 2)
                                break;
@@ -196,15 +164,17 @@ int main(int argc, char *argv[])
                autook = 1;
        }
 
-EXIT:  
+EXIT:
        if (automode != 0)
        {
-               sprintf (title, "%s %s - %s", NAME, VERSION, SLOGAN);
+               sprintf (title, "%s - %s", NAME, SLOGAN);
                if (autook)
-                       newtWinMessage(title, ctr[TR_OK], ctr[TR_SETUP_FINISHED]);
-               else
-               {
-                       newtWinMessage(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_SETUP_NOT_COMPLETE]);
+                       newtWinMessage(title, _("OK"), _("Setup is complete."));
+               else {
+                       newtWinMessage(_("Warning"), _("OK"),
+                               _("Initial setup was not entirely complete. "
+                               "You must ensure that Setup is properly finished by running "
+                               "setup again at the shell."));
 
                        fprintf(flog, "Setup program has not finished.\n");
                        fflush(flog);
similarity index 81%
rename from src/install+setup/setup/misc.c
rename to src/setup/misc.c
index 58e9bb275d0e8838dc9a5918ad085eb84eb3d50f..3b258e0f184e29bd32c1933b3990b9d0199d285b 100644 (file)
@@ -7,14 +7,16 @@
  * Misc. stuff for the lib.
  * 
  */
+
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
 
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
 extern int automode;
 
 /* This will rewrite /etc/hosts, /etc/hosts.*, and the apache ServerName file. */
@@ -35,7 +37,7 @@ int writehostsfiles(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
        findkey(kv, "GREEN_ADDRESS", address);
@@ -47,7 +49,7 @@ int writehostsfiles(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
        strcpy(hostname, SNAME );
@@ -57,7 +59,7 @@ int writehostsfiles(void)
                
        if (!(file = fopen(CONFIG_ROOT "/main/hostname.conf", "w")))
        {
-               sprintf (message, ctr[TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF], CONFIG_ROOT);
+               sprintf (message, _("Unable to write %s/main/hostname.conf"), CONFIG_ROOT);
                errorbox(message);
                return 0;
        }
@@ -66,12 +68,12 @@ int writehostsfiles(void)
        
        if (!(file = fopen(CONFIG_ROOT "/main/hosts", "r")))
        {
-               errorbox(ctr[TR_UNABLE_TO_OPEN_HOSTS_FILE]);
+               errorbox(_("Unable to open main hosts file."));
                return 0;
        }
        if (!(hosts = fopen("/etc/hosts", "w")))
        {
-               errorbox(ctr[TR_UNABLE_TO_WRITE_ETC_HOSTS]);
+               errorbox(_("Unable to write /etc/hosts."));
                return 0;
        }
        fprintf(hosts, "127.0.0.1\tlocalhost\n");
@@ -112,7 +114,7 @@ int writehostsfiles(void)
        /* TCP wrappers stuff. */
        if (!(file = fopen("/etc/hosts.deny", "w")))
        {
-               errorbox(ctr[TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY]);
+               errorbox(_("Unable to write /etc/hosts.deny."));
                return 0;
        }
        fprintf(file, "ALL : ALL\n");
@@ -120,7 +122,7 @@ int writehostsfiles(void)
        
        if (!(file = fopen("/etc/hosts.allow", "w")))
        {
-               errorbox(ctr[TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW]);
+               errorbox(_("Unable to write /etc/hosts.allow."));
                return 0;
        }
        fprintf(file, "sshd : ALL\n");
@@ -129,9 +131,9 @@ int writehostsfiles(void)
        fclose(file);
        
        sprintf(commandstring, "/bin/hostname %s.%s", hostname, domainname);
-       if (mysystem(commandstring))
+       if (mysystem(NULL, commandstring))
        {
-               errorbox(ctr[TR_UNABLE_TO_SET_HOSTNAME]);
+               errorbox(_("Unable to set hostname."));
                return 0;
        }
        
@@ -142,8 +144,8 @@ int handleisdn(void)
 {
        char command[STRING_SIZE];
        sprintf(command, "/etc/rc.d/init.d/mISDN config");
-       if (runcommandwithstatus(command, ctr[TR_PROBING_ISDN]))
-               errorbox(ctr[TR_ERROR_PROBING_ISDN]);
+       if (runcommandwithstatus(command, _("ISDN"), _("Scanning and configuring ISDN devices."), NULL))
+               errorbox(_("Unable to scan for ISDN devices."));
        // Need to write some lines that count the cards and say the names...
        return 1;
 }
similarity index 88%
rename from src/install+setup/libsmooth/netstuff.c
rename to src/setup/netstuff.c
index 8c6f3fa90f7158a946912d9fa483b1dbf7015085..a656e9f910b183a8520b95308c7f02ed02503caa 100644 (file)
@@ -8,14 +8,18 @@
  * 
  */
 
-#include "libsmooth.h"
+#include <libsmooth.h>
 #include <signal.h>
 
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
+#include "setup.h"
+
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern struct nic nics[];
 extern struct knic knics[];
 
@@ -79,12 +83,12 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
        sprintf(dhcphostnamefield, "%s_DHCP_HOSTNAME", colour);
        sprintf(dhcpforcemtufield, "%s_DHCP_FORCE_MTU", colour);
                
-       sprintf(message, ctr[TR_INTERFACE], colour);
+       sprintf(message, _("Interface - %s"), colour);
        newtCenteredWindow(44, (typeflag ? 18 : 12), message);
        
        networkform = newtForm(NULL, NULL, 0);
 
-       sprintf(message, ctr[TR_ENTER_THE_IP_ADDRESS_INFORMATION], colour);
+       sprintf(message, _("Enter the IP address information for the %s interface."), colour);
        header = newtTextboxReflowed(1, 1, message, 42, 0, 0, 0);
        newtFormAddComponent(networkform, header);
 
@@ -96,18 +100,19 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
                if (strcmp(temp, "STATIC") == 0) startstatictype = 1;
                if (strcmp(temp, "DHCP") == 0) startdhcptype = 1;
                if (strcmp(temp, "PPPOE") == 0) startpppoetype = 1;
-               statictyperadio = newtRadiobutton(2, 4, ctr[TR_STATIC], startstatictype, NULL);
-               dhcptyperadio = newtRadiobutton(2, 5, ctr[TR_DHCP], startdhcptype, statictyperadio);
-               pppoetyperadio = newtRadiobutton(2, 6, ctr[TR_PPP_DIALUP], startpppoetype, dhcptyperadio);
+               statictyperadio = newtRadiobutton(2, 4, _("Static"), startstatictype, NULL);
+               dhcptyperadio = newtRadiobutton(2, 5, _("DHCP"), startdhcptype, statictyperadio);
+               pppoetyperadio = newtRadiobutton(2, 6, _("PPP DIALUP (PPPoE, modem, ATM ...)"),
+                       startpppoetype, dhcptyperadio);
                newtFormAddComponents(networkform, statictyperadio, dhcptyperadio, 
                        pppoetyperadio, NULL);
                newtComponentAddCallback(statictyperadio, networkdialogcallbacktype, NULL);
                newtComponentAddCallback(dhcptyperadio, networkdialogcallbacktype, NULL);
                newtComponentAddCallback(pppoetyperadio, networkdialogcallbacktype, NULL);
                dhcphostnamelabel = newtTextbox(2, 8, 18, 1, 0);
-               newtTextboxSetText(dhcphostnamelabel, ctr[TR_DHCP_HOSTNAME]);
+               newtTextboxSetText(dhcphostnamelabel, _("DHCP Hostname:"));
                dhcpforcemtulabel = newtTextbox(2, 9, 18, 1, 0);
-               newtTextboxSetText(dhcpforcemtulabel, ctr[TR_DHCP_FORCE_MTU]);
+               newtTextboxSetText(dhcpforcemtulabel, _("Force DHCP MTU:"));
                strcpy(temp, defaultdhcphostname);
                findkey(kv, dhcphostnamefield, temp);
                dhcphostnameentry = newtEntry(20, 8, temp, 20, &dhcphostnameresult, 0);
@@ -126,7 +131,7 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
        }
        /* Address */
        addresslabel = newtTextbox(2, (typeflag ? 11 : 4) + 0, 18, 1, 0);
-       newtTextboxSetText(addresslabel, ctr[TR_IP_ADDRESS_PROMPT]);
+       newtTextboxSetText(addresslabel, _("IP address:"));
        strcpy(temp, "");
        findkey(kv, addressfield, temp);
        addressentry = newtEntry(20, (typeflag ? 11 : 4) + 0, temp, 20, &addressresult, 0);
@@ -138,7 +143,7 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
        
        /* Netmask */
        netmasklabel = newtTextbox(2, (typeflag ? 11 : 4) + 1, 18, 1, 0);
-       newtTextboxSetText(netmasklabel, ctr[TR_NETMASK_PROMPT]);
+       newtTextboxSetText(netmasklabel, _("Network mask:"));
        strcpy(temp, "255.255.255.0"); findkey(kv, netmaskfield, temp);
        netmaskentry = newtEntry(20, (typeflag ? 11 : 4) + 1, temp, 20, &netmaskresult, 0);
        newtEntrySetFilter(netmaskentry, ip_input_filter, NULL);
@@ -149,8 +154,8 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
        newtFormAddComponent(networkform, netmaskentry);
 
        /* Buttons. */
-       ok = newtButton(8, (typeflag ? 14 : 7), ctr[TR_OK]);
-       cancel = newtButton(26, (typeflag ? 14 : 7), ctr[TR_CANCEL]);
+       ok = newtButton(8, (typeflag ? 14 : 7), _("OK"));
+       cancel = newtButton(26, (typeflag ? 14 : 7), _("Cancel"));
 
        newtFormAddComponents(networkform, ok, cancel, NULL);
 
@@ -165,7 +170,8 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
                if (es.u.co == ok)
                {
                        /* OK was pressed; verify the contents of each entry. */
-                       strcpy(message, ctr[TR_INVALID_FIELDS]);
+                       strcpy(message, _("The following fields are invalid:"));
+                       strcat(message, "\n\n");
                        
                        strcpy(type, "STATIC");
                        if (typeflag)
@@ -174,12 +180,14 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
                        {               
                                if (inet_addr(addressresult) == INADDR_NONE)
                                {
-                                       strcat(message, ctr[TR_IP_ADDRESS_CR]);
+                                       strcat(message, _("IP address"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                                if (inet_addr(netmaskresult) == INADDR_NONE)
                                {
-                                       strcat(message, ctr[TR_NETWORK_MASK_CR]);
+                                       strcat(message, _("Network mask"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                        }
@@ -187,7 +195,8 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
                        {
                                if (!strlen(dhcphostnameresult))
                                {
-                                       strcat(message, ctr[TR_DHCP_HOSTNAME_CR]);
+                                       strcat(message, _("DHCP hostname"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                        }
@@ -365,7 +374,7 @@ int get_knic(int card)              //returns "0" for zero cards or error and "1" card is fo
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
@@ -384,7 +393,7 @@ int get_knic(int card)              //returns "0" for zero cards or error and "1" card is fo
                strcpy(knics[ card ].driver, temp);
                ret_value = 1;
        } else {
-               strcpy(knics[ card ].description, ctr[TR_UNSET]);
+               strcpy(knics[ card ].description, _("Unset"));
                ret_value = 0;
        }
        freekeyvalues(kv);
@@ -413,7 +422,7 @@ int is_interface_up(char *card) {   /* Check if the interface is UP */
        char temp[STRING_SIZE];
 
        sprintf(temp,"ip link show dev %s | grep -q UP", card);
-       if (mysystem(temp)) return 0; else return 1;
+       if (mysystem(NULL, temp)) return 0; else return 1;
 }
 
 int rename_device(char *old_name, char *new_name) {
@@ -425,7 +434,7 @@ int rename_device(char *old_name, char *new_name) {
                return 0;
        }
        sprintf(temp,"/sbin/ip link set dev %s name %s",old_name ,new_name );
-       mysystem(temp);
+       mysystem(NULL, temp);
 
        return 1;
 }
@@ -477,14 +486,14 @@ int nic_shutdown(char *nic) {
        char temp[STRING_SIZE];
        
        sprintf(temp,"ip link set %s down", nic);
-       mysystem(temp);
+       mysystem(NULL, temp);
 }
 
 int nic_startup(char *nic) {
        char temp[STRING_SIZE];
        
        sprintf(temp,"ip link set %s up", nic);
-       mysystem(temp);
+       mysystem(NULL, temp);
 
 }
 
@@ -554,7 +563,7 @@ int write_configs_netudev(int card , int colour)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
@@ -585,7 +594,7 @@ int scan_network_cards(void)
        
        if (!(scanned_nics_read_done))
        {
-               mysystem("/bin/probenic.sh");
+               mysystem(NULL, "/usr/bin/probenic.sh");
                if( (fp = fopen(SCANNED_NICS, "r")) == NULL )
                {
                        fprintf(stderr,"Couldn't open "SCANNED_NICS);
@@ -657,18 +666,19 @@ int nicmenu(int colour)
 
                pMenuInhalt[mcount] = NULL;
 
-               sprintf(message, ctr[TR_CHOOSE_NETCARD], ucolourcard[colour]);
+               sprintf(message, _("Please choose a networkcard for the following interface - %s."), ucolourcard[colour]);
                rc=2;
                while ( rc == 2 ) {
-                       rc = newtWinMenu( ctr[TR_NETCARDMENU2], message, 50, 5, 5, 6, pMenuInhalt, &choise, ctr[TR_SELECT], ctr[TR_IDENTIFY], ctr[TR_CANCEL], NULL);
+                       rc = newtWinMenu(_("Extended Network Menu"), message, 50, 5, 5, 6, pMenuInhalt, &choise,
+                               _("Select"), _("Identify"), _("Cancel"), NULL);
                        if ( rc == 2 ) {
                                sprintf(temp, "/sbin/ip link set %s up", nics[found_NIC_as_Card[choise]].nic);
-                               mysystem(temp);
+                               mysystem(NULL, temp);
                                sprintf(temp, "/usr/sbin/ethtool -p %s 10", nics[found_NIC_as_Card[choise]].nic);
-                               if (runcommandwithstatus(temp,ctr[TR_IDENTIFY_SHOULD_BLINK]) != 0) {      
-                                       errorbox(ctr[TR_IDENTIFY_NOT_SUPPORTED]);
+                               if (runcommandwithstatus(temp, _("Device Identification"), _("The lights on the selected port should flash now for 10 seconds..."), NULL) != 0) {
+                                       errorbox(_("Identification is not supported by this interface."));
                                sprintf(temp, "/sbin/ip link set %s down", nics[found_NIC_as_Card[choise]].nic);
-                               mysystem(temp);
+                               mysystem(NULL, temp);
                                }
                        }
                }
@@ -678,7 +688,7 @@ int nicmenu(int colour)
                return 0;
        } else {
                // We have to add here that you can manually add a device
-               errorbox( ctr[TR_ERROR_INTERFACES]);
+               errorbox(_("There are no unassigned interfaces on your system."));
                return 1;
        }
 }
@@ -691,12 +701,12 @@ int clear_card_entry(int card)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
        strcpy(knics[card].driver, "");
-       strcpy(knics[card].description, ctr[TR_UNSET]);
+       strcpy(knics[card].description, _("Unset"));
        strcpy(knics[card].macaddr, "");
        strcpy(knics[card].colour, "");
        sprintf(temp, "%s_DRIVER", ucolourcard[card]);
@@ -719,8 +729,8 @@ int ask_clear_card_entry(int card)
        char message[STRING_SIZE];
        int rc;
 
-       sprintf(message, ctr[TR_REMOVE_CARD], ucolourcard[card]);
-       rc = newtWinChoice(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_CANCEL], message);                               
+       sprintf(message, _("Do you really want to remove the assigned %s interface?"), ucolourcard[card]);
+       rc = newtWinChoice(_("Warning"), _("OK"), _("Cancel"), message);
 
        if ( rc = 0 || rc == 1) {
                clear_card_entry(card);
@@ -742,15 +752,14 @@ int manualdriver(char *driver, char *driveroptions)
        strcpy(driver, "");
        strcpy(driveroptions, "");
        
-       rc = newtWinEntries(ctr[TR_SELECT_NETWORK_DRIVER], 
-               ctr[TR_MODULE_PARAMETERS], 50, 5, 5, 40, entries, 
-               ctr[TR_OK], ctr[TR_CANCEL], NULL);      
+       rc = newtWinEntries(_("Select network driver"), _("Set additional module parameters"),
+               50, 5, 5, 40, entries,  _("OK"), _("Cancel"), NULL);
        if (rc == 0 || rc == 1)
        {
                if (strlen(values[0]))
                {
                        sprintf(commandstring, "/sbin/modprobe %s", values[0]);
-                       if (runcommandwithstatus(commandstring, ctr[TR_LOADING_MODULE]) == 0)
+                       if (runcommandwithstatus(commandstring, _("Loading module..."), _("Loading module..."), NULL) == 0)
                        {
                                if ((driverend = strchr(values[0], ' ')))
                                {
@@ -765,10 +774,10 @@ int manualdriver(char *driver, char *driveroptions)
                                }
                        }
                        else
-                               errorbox(ctr[TR_UNABLE_TO_LOAD_DRIVER_MODULE]);
+                               errorbox(_("Unable to load driver module."));
                }
                else
-                       errorbox(ctr[TR_MODULE_NAME_CANNOT_BE_BLANK]);
+                       errorbox(_("Module name cannot be blank."));
        }
        free(values[0]);
 
similarity index 71%
rename from src/install+setup/setup/networking.c
rename to src/setup/networking.c
index edd3c71af0d60560c64b0f41616640c1eb3c60cd..df4f00f0b1f6b28e238aefd255780708fea4dbba 100644 (file)
@@ -7,7 +7,11 @@
  * The big one: networking. 
  * 
  */
+
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
 
 #define DNS1 0
@@ -18,8 +22,6 @@
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern int automode;
 
 #define HAS_GREEN 1
@@ -105,12 +107,12 @@ int handlenetworking(void)
                if (netaddresschange)
                {
                        runcommandwithstatus("/etc/rc.d/init.d/network stop",
-                               ctr[TR_PUSHING_NETWORK_DOWN]);
+                               _("Networking"), _("Stopping network..."), NULL);
 
                        rename_nics();
 
                        runcommandwithstatus("/etc/rc.d/init.d/network start",
-                               ctr[TR_PULLING_NETWORK_UP]);
+                               _("Networking"), _("Restarting network..."), NULL);
                }
        } else {
                rename_nics();
@@ -129,7 +131,7 @@ int oktoleave(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }       
 
@@ -141,13 +143,13 @@ int oktoleave(void)
                strcpy(temp, ""); findkey(kv, "GREEN_DEV", temp);
                if (!(strlen(temp)))
                {
-                       errorbox(ctr[TR_NO_GREEN_INTERFACE]);
+                       errorbox(_("No GREEN interface assigned."));
                        freekeyvalues(kv);
                        return 0;
                }
                if (!(interfacecheck(kv, "GREEN")))
                {
-                       errorbox(ctr[TR_MISSING_GREEN_IP]);
+                       errorbox(_("Missing an IP address on GREEN."));
                        freekeyvalues(kv);
                        return 0;
                }
@@ -158,7 +160,8 @@ int oktoleave(void)
                strcpy(temp, ""); findkey(kv, "RED_DEV", temp);
                if (!(strlen(temp)))
                {
-                       rc = newtWinChoice(ctr[TR_ERROR], ctr[TR_OK], ctr[TR_IGNORE], ctr[TR_NO_RED_INTERFACE]);
+                       rc = newtWinChoice(_("Error"), _("OK"), _("Ignore"),
+                               _("No RED interface assigned."));
                        if (rc == 0 || rc == 1)
                        {
                                freekeyvalues(kv);
@@ -167,7 +170,7 @@ int oktoleave(void)
                }
                if (!(interfacecheck(kv, "RED")))
                {
-                       errorbox(ctr[TR_MISSING_RED_IP]);
+                       errorbox(_("Missing an IP address on RED."));
                        freekeyvalues(kv);
                        return 0;
                }
@@ -177,13 +180,13 @@ int oktoleave(void)
                strcpy(temp, ""); findkey(kv, "ORANGE_DEV", temp);
                if (!(strlen(temp)))
                {
-                       errorbox(ctr[TR_NO_ORANGE_INTERFACE]);
+                       errorbox(_("No ORANGE interface assigned."));
                        freekeyvalues(kv);
                        return 0;
                }
                if (!(interfacecheck(kv, "ORANGE")))
                {
-                       errorbox(ctr[TR_MISSING_ORANGE_IP]);
+                       errorbox(_("Missing an IP address on ORANGE."));
                        freekeyvalues(kv);
                        return 0;
                }
@@ -193,13 +196,13 @@ int oktoleave(void)
                strcpy(temp, ""); findkey(kv, "BLUE_DEV", temp);
                if (!(strlen(temp)))
                {
-                       errorbox(ctr[TR_NO_BLUE_INTERFACE]);
+                       errorbox(_("No BLUE interface assigned."));
                        freekeyvalues(kv);
                        return 0;
                }
                if (!(interfacecheck(kv, "BLUE")))
                {
-                       errorbox(ctr[TR_MISSING_BLUE_IP]);
+                       errorbox(_("Missing an IP address on BLUE."));
                        freekeyvalues(kv);
                        return 0;
                }
@@ -211,14 +214,14 @@ int oktoleave(void)
                strcpy(temp, ""); findkey(kv, "DNS1", temp);
                if (!(strlen(temp)))
                {
-                       errorbox(ctr[TR_MISSING_DNS]);
+                       errorbox(_("Misssing DNS."));
                        freekeyvalues(kv);
                        return 0;
                }
                strcpy(temp, ""); findkey(kv, "DEFAULT_GATEWAY", temp);
                if (!(strlen(temp)))
                {
-                       errorbox(ctr[TR_MISSING_DEFAULT]);
+                       errorbox(_("Missing Default Gateway."));
                        freekeyvalues(kv);
                        return 0;
                }
@@ -230,10 +233,13 @@ int oktoleave(void)
 /* Shows the main menu and a summary of the current settings. */
 int firstmenu(void)
 {
-       char *sections[] = { ctr[TR_NETWORK_CONFIGURATION_TYPE],
-               ctr[TR_DRIVERS_AND_CARD_ASSIGNMENTS],
-               ctr[TR_ADDRESS_SETTINGS],
-               ctr[TR_DNS_AND_GATEWAY_SETTINGS], NULL };
+       char *sections[] = {
+               _("Network configuration type"),
+               _("Drivers and card assignments"),
+               _("Address settings"),
+               _("DNS and Gateway settings"),
+               NULL
+       };
        int rc;
        static int choice = 0;
        struct keyvalue *kv = initkeyvalues();
@@ -246,22 +252,21 @@ int firstmenu(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }       
 
        if (netaddresschange) 
-               strcpy(networkrestart, ctr[TR_RESTART_REQUIRED]);
+               strcpy(networkrestart, _("When configuration is complete, a network restart will be required."));
 
        strcpy(temp, ""); findkey(kv, "CONFIG_TYPE", temp); 
        x = atol(temp);
        x--;
        if (x < 0 || x > 4) x = 0;
        /* Format heading bit. */
-       snprintf(message, 1000, ctr[TR_CURRENT_CONFIG], configtypenames[x],
-               networkrestart);
-       rc = newtWinMenu(ctr[TR_NETWORK_CONFIGURATION_MENU], message, 50, 5, 5, 6,
-                       sections, &choice, ctr[TR_OK], ctr[TR_DONE], NULL);
+       snprintf(message, 1000, _("Current config: %s\n\n%s"), configtypenames[x], networkrestart);
+       rc = newtWinMenu(_("Network configuration menu"), message, 50, 5, 5, 6,
+                       sections, &choice, _("OK"), _("Done"), NULL);
 
        if (rc == 0 || rc == 1)
                result = choice + 1;
@@ -283,7 +288,7 @@ int configtypemenu(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
@@ -292,11 +297,15 @@ int configtypemenu(void)
        findkey(kv, "CONFIG_TYPE", temp); choise = atol(temp);
        choise--;
 
-               sprintf(message, ctr[TR_NETWORK_CONFIGURATION_TYPE_LONG], NAME);
-               rc = newtWinMenu(ctr[TR_NETWORK_CONFIGURATION_TYPE], message, 50, 5, 5,
-                       6, configtypenames, &choise, ctr[TR_OK], ctr[TR_CANCEL], NULL);
+               sprintf(message, _("Select the network configuration for %s. "
+                       "The following configuration types list those interfaces which have ethernet attached. "
+                       "If you change this setting, a network restart will be required, and you will have to "
+                       "reconfigure the network driver assignments."), NAME);
+               rc = newtWinMenu(_("Network configuration type"), message, 50, 5, 5,
+                       6, configtypenames, &choise, _("OK"), _("Cancel"), NULL);
                if ( configtypecards[choise] > found ) {
-                       sprintf(message, ctr[TR_NOT_ENOUGH_INTERFACES] , configtypecards[choise], found);
+                       sprintf(message, _("Not enough netcards for your choice.\n\nNeeded: %d - Available: %d\n"),
+                               configtypecards[choise], found);
                        errorbox(message);
                }
 
@@ -334,7 +343,7 @@ int drivermenu(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
@@ -347,42 +356,43 @@ int drivermenu(void)
                writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings");
        }
 
-       strcpy(message, ctr[TR_CONFIGURE_NETWORK_DRIVERS]);
+       strcpy(message, _("Configure network drivers, and which interface each card is assigned to. "
+               "The current configuration is as follows:\n\n"));
 
        kcount = 0;
        neednics = 0;
        if (HAS_GREEN) {
-               sprintf(temp, "GREEN:  %s\n", knics[_GREEN_CARD_].description);
+               sprintf(temp, "%-6s: %s\n", "GREEN", knics[_GREEN_CARD_].description);
                strcat(message, temp);
                if (strlen(knics[_GREEN_CARD_].macaddr) ) {
-                       sprintf(temp, "GREEN:  (%s) %s green0\n", knics[_GREEN_CARD_].macaddr, ctr[TR_AS]);
+                       sprintf(temp, "%-6s: (%s)\n", "GREEN", knics[_GREEN_CARD_].macaddr);
                        strcat(message, temp);
                }
                neednics++;
        }
        if (HAS_RED) {
-               sprintf(temp, "RED:    %s\n", knics[_RED_CARD_].description);
+               sprintf(temp, "%-6s: %s\n", "RED", knics[_RED_CARD_].description);
                strcat(message, temp);
                if (strlen(knics[_RED_CARD_].macaddr) ) {
-                       sprintf(temp, "RED:    (%s) %s red0\n", knics[_RED_CARD_].macaddr, ctr[TR_AS]);
+                       sprintf(temp, "%-6s: (%s)\n", "RED", knics[_RED_CARD_].macaddr);
                        strcat(message, temp);
                }
                neednics++;
        }
        if (HAS_ORANGE) {
-               sprintf(temp, "ORANGE: %s\n", knics[_ORANGE_CARD_].description);
+               sprintf(temp, "%-6s: %s\n", "ORANGE", knics[_ORANGE_CARD_].description);
                strcat(message, temp);
                if ( strlen(knics[_ORANGE_CARD_].macaddr) ) {
-                       sprintf(temp, "ORANGE: (%s) %s orange0\n", knics[_ORANGE_CARD_].macaddr, ctr[TR_AS]);
+                       sprintf(temp, "%-6s: (%s)\n", "ORANGE", knics[_ORANGE_CARD_].macaddr);
                        strcat(message, temp);
                }
                neednics++;
        }
        if (HAS_BLUE) {
-               sprintf(temp, "BLUE:   %s\n", knics[_BLUE_CARD_].description);
+               sprintf(temp, "%-6s: %s\n", "BLUE", knics[_BLUE_CARD_].description);
                strcat(message, temp);
                if (strlen(knics[_BLUE_CARD_].macaddr)) {
-                       sprintf(temp, "BLUE:   (%s) %s blue0\n", knics[_BLUE_CARD_].macaddr, ctr[TR_AS]);
+                       sprintf(temp, "%-6s: (%s)\n", "BLUE", knics[_BLUE_CARD_].macaddr);
                        strcat(message, temp);
                }
                neednics++;
@@ -394,9 +404,10 @@ int drivermenu(void)
 
        if (neednics = kcount)
        {
-               strcat(message, ctr[TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS]);
-               rc = newtWinChoice(ctr[TR_DRIVERS_AND_CARD_ASSIGNMENTS], ctr[TR_OK],
-               ctr[TR_CANCEL], message);
+               strcat(message, "\n");
+               strcat(message, _("Do you wish to change these settings?"));
+               rc = newtWinChoice(_("Drivers and card assignments"), _("OK"),
+                       _("Cancel"), message);
                if (rc == 0 || rc == 1)
                {
                        changedrivers();
@@ -428,12 +439,12 @@ int changedrivers(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
        if (automode == 0)
                runcommandwithstatus("/etc/rc.d/init.d/network stop red blue orange",
-                       ctr[TR_PUSHING_NON_LOCAL_NETWORK_DOWN]);
+                       _("Networking"), _("Restarting non-local network..."), NULL);
 
        findkey(kv, "CONFIG_TYPE", temp); configtype = atol(temp);
        if (configtype == 1)
@@ -450,16 +461,16 @@ int changedrivers(void)
        do
        {
                count = 0;
-               strcpy(message, ctr[TR_INTERFACE_CHANGE]);
+               strcpy(message, _("Please choose the interface you wish to change.\n\n"));
 
                if (green) {
                        strcpy(MenuInhalt[count], "GREEN");
                        pMenuInhalt[count] = MenuInhalt[count];
                        NicEntry[_GREEN_CARD_] = count;
-                       sprintf(temp, "GREEN:  %s\n", knics[_GREEN_CARD_].description);
+                       sprintf(temp, "%-6s: %s\n", "GREEN", knics[_GREEN_CARD_].description);
                        strcat(message, temp);
                        if ( strlen(knics[_GREEN_CARD_].macaddr) ) {
-                               sprintf(temp, "GREEN:  (%s) %s green0\n", knics[_GREEN_CARD_].macaddr, ctr[TR_AS]);
+                               sprintf(temp, "%-6s: (%s)\n", "GREEN", knics[_GREEN_CARD_].macaddr);
                                strcat(message, temp);
                        }
                        count++;
@@ -469,10 +480,10 @@ int changedrivers(void)
                        strcpy(MenuInhalt[count], "RED");
                        pMenuInhalt[count] = MenuInhalt[count];
                        NicEntry[_RED_CARD_] = count;
-                       sprintf(temp, "RED:    %s\n", knics[_RED_CARD_].description);
+                       sprintf(temp, "%-6s: %s\n", "RED", knics[_RED_CARD_].description);
                        strcat(message, temp);
                        if ( strlen(knics[_RED_CARD_].macaddr) ) {
-                               sprintf(temp, "RED:    (%s) %s red0\n", knics[_RED_CARD_].macaddr, ctr[TR_AS]);
+                               sprintf(temp, "%-6s: (%s)\n", "RED", knics[_RED_CARD_].macaddr);
                                strcat(message, temp);
                        }
                        count++;
@@ -482,10 +493,10 @@ int changedrivers(void)
                        strcpy(MenuInhalt[count], "ORANGE");
                        pMenuInhalt[count] = MenuInhalt[count];
                        NicEntry[_ORANGE_CARD_] = count;
-                       sprintf(temp, "ORANGE: %s\n", knics[_ORANGE_CARD_].description);
+                       sprintf(temp, "%-6s: %s\n", "ORANGE", knics[_ORANGE_CARD_].description);
                        strcat(message, temp);
                        if ( strlen(knics[_ORANGE_CARD_].macaddr) ) {
-                               sprintf(temp, "ORANGE: (%s) %s orange0\n", knics[_ORANGE_CARD_].macaddr, ctr[TR_AS]);
+                               sprintf(temp, "%-6s: (%s)\n", "ORANGE", knics[_ORANGE_CARD_].macaddr);
                                strcat(message, temp);
                        }
                        count++;
@@ -495,17 +506,18 @@ int changedrivers(void)
                        strcpy(MenuInhalt[count], "BLUE");
                        pMenuInhalt[count] = MenuInhalt[count];
                        NicEntry[_BLUE_CARD_] = count;
-                       sprintf(temp, "BLUE:   %s\n", knics[_BLUE_CARD_].description);
+                       sprintf(temp, "%-6s: %s\n", "BLUE", knics[_BLUE_CARD_].description);
                        strcat(message, temp);
                        if ( strlen(knics[_BLUE_CARD_].macaddr) ) {
-                               sprintf(temp, "BLUE:   (%s) %s blue0\n", knics[_BLUE_CARD_].macaddr, ctr[TR_AS]);
+                               sprintf(temp, "%-6s: (%s)\n", "BLUE", knics[_BLUE_CARD_].macaddr);
                                strcat(message, temp);
                        }
                        count++;
                }
                pMenuInhalt[count] = NULL;
 
-               rc = newtWinMenu( ctr[TR_NETCARD_COLOR], message, 70, 5, 5, 6, pMenuInhalt, &choise, ctr[TR_SELECT], ctr[TR_REMOVE], ctr[TR_DONE], NULL);
+               rc = newtWinMenu(_("Assigned Cards"), message, 70, 5, 5, 6, pMenuInhalt,
+                       &choise, _("Select"), _("Remove"), _("Done"), NULL);
                        
                if ( rc == 0 || rc == 1) {
                        if ((green) && ( choise == NicEntry[0])) nicmenu(_GREEN_CARD_);
@@ -537,12 +549,15 @@ int greenaddressmenu(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
-       sprintf(message, ctr[TR_WARNING_LONG], NAME);
-       rc = newtWinChoice(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_CANCEL], message);
+       sprintf(message, _("If you change this IP address, and you are logged in remotely, "
+               "your connection to the %s machine will be broken, and you will have to reconnect "
+               "on the new IP. This is a risky operation, and should only be attempted if you "
+               "have physical access to the machine, should something go wrong."), NAME);
+       rc = newtWinChoice(_("Warning"), _("OK"), _("Cancel"), message);
        
        if (rc == 0 || rc == 1)
        {
@@ -585,14 +600,14 @@ int addressesmenu(void)
        {
                freekeyvalues(kv);
                freekeyvalues(mainkv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
        if (!(readkeyvalues(mainkv, CONFIG_ROOT "/main/settings")))
        {
                freekeyvalues(kv);
                freekeyvalues(mainkv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
@@ -622,18 +637,20 @@ int addressesmenu(void)
        done = 0;       
        while (!done)
        {
-               rc = newtWinMenu(ctr[TR_ADDRESS_SETTINGS],
-                       ctr[TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE], 50, 5,
-                       5, 6, sections, &choice, ctr[TR_OK], ctr[TR_DONE], NULL);       
+               rc = newtWinMenu(_("Address settings"),
+                       _("Select the interface you wish to reconfigure."), 50, 5,
+                       5, 6, sections, &choice, _("OK"), _("Done"), NULL);     
 
                if (rc == 0 || rc == 1)
                {
                        if (strcmp(sections[choice], "GREEN") == 0)
                        {
                                findkey(kv, "GREEN_ADDRESS", oldgreenaddress);
-                               sprintf(message, ctr[TR_WARNING_LONG], NAME);
-                               rc = newtWinChoice(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_CANCEL],
-                                       message);
+                               sprintf(message, _("If you change this IP address, and you are logged in remotely, "
+                                       "your connection to the %s machine will be broken, and you will have to reconnect "
+                                       "on the new IP. This is a risky operation, and should only be attempted if you "
+                                       "have physical access to the machine, should something go wrong."), NAME);
+                               rc = newtWinChoice(_("Warning"), _("OK"), _("Cancel"), message);
                                if (rc == 0 || rc == 1)
                                {
                                        if (changeaddress(kv, "GREEN", 0, ""))
@@ -693,23 +710,23 @@ int dnsgatewaymenu(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }
 
-       entries[DNS1].text = ctr[TR_PRIMARY_DNS];
+       entries[DNS1].text = _("Primary DNS:");
        strcpy(temp, ""); findkey(kv, "DNS1", temp);
        values[DNS1] = strdup(temp);
        entries[DNS1].value = &values[DNS1];
        entries[DNS1].flags = 0;
        
-       entries[DNS2].text = ctr[TR_SECONDARY_DNS];
+       entries[DNS2].text = _("Secondary DNS:");
        strcpy(temp, ""); findkey(kv, "DNS2", temp);
        values[DNS2] = strdup(temp);
        entries[DNS2].value = &values[DNS2];
        entries[DNS2].flags = 0;
        
-       entries[DEFAULT_GATEWAY].text = ctr[TR_DEFAULT_GATEWAY];
+       entries[DEFAULT_GATEWAY].text = _("Default gateway:");
        strcpy(temp, ""); findkey(kv, "DEFAULT_GATEWAY", temp);
        values[DEFAULT_GATEWAY] = strdup(temp);
        entries[DEFAULT_GATEWAY].value = &values[DEFAULT_GATEWAY];
@@ -723,17 +740,20 @@ int dnsgatewaymenu(void)
        {
                error = 0;
                
-               rc = newtWinEntries(ctr[TR_DNS_AND_GATEWAY_SETTINGS], 
-                       ctr[TR_DNS_AND_GATEWAY_SETTINGS_LONG], 50, 5, 5, 18, entries,
-                       ctr[TR_OK], ctr[TR_CANCEL], NULL);
+               rc = newtWinEntries(_("DNS and Gateway settings"),
+                       _("Enter the DNS and gateway information. "
+                       "These settings are used only with Static IP (and DHCP if DNS set) on the RED interface."),
+                       50, 5, 5, 18, entries, _("OK"), _("Cancel"), NULL);
                if (rc == 0 || rc == 1)
                {
-                       strcpy(message, ctr[TR_INVALID_FIELDS]);
+                       strcpy(message, _("The following fields are invalid:"));
+                       strcpy(message, "\n\n");
                        if (strlen(values[DNS1]))
                        {
                                if (inet_addr(values[DNS1]) == INADDR_NONE)
                                {
-                                       strcat(message, ctr[TR_PRIMARY_DNS_CR]);
+                                       strcat(message, _("Primary DNS"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                        }
@@ -741,7 +761,8 @@ int dnsgatewaymenu(void)
                        {
                                if (inet_addr(values[DNS2]) == INADDR_NONE)
                                {
-                                       strcat(message, ctr[TR_SECONDARY_DNS_CR]);
+                                       strcat(message, _("Secondary DNS"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                        }
@@ -749,13 +770,15 @@ int dnsgatewaymenu(void)
                        {
                                if (inet_addr(values[DEFAULT_GATEWAY]) == INADDR_NONE)
                                {
-                                       strcat(message, ctr[TR_DEFAULT_GATEWAY_CR]);
+                                       strcat(message, _("Default gateway"));
+                                       strcat(message, "\n");
                                        error = 1;
                                }
                        }
                        if (!strlen(values[DNS1]) && strlen(values[DNS2]))
                        {
-                               strcpy(message, ctr[TR_SECONDARY_WITHOUT_PRIMARY_DNS]);
+                               strcpy(message, _("Secondary DNS specified without a Primary DNS"));
+                               strcat(message, "\n");
                                error = 1;
                        }
 
similarity index 65%
rename from src/install+setup/setup/passwords.c
rename to src/setup/passwords.c
index f5a686b4891e27c88023c0bb799e85a8b16e667e..e7b4b5231a0343f7c911808aa6f0d6079f191931 100644 (file)
  * 
  */
 
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
 
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern int automode;
 
 int getpassword(char *password, char *text);
@@ -28,14 +30,13 @@ int handlerootpassword(void)
        char commandstring[STRING_SIZE];
                
        /* Root password. */
-       if (getpassword(password, ctr[TR_ENTER_ROOT_PASSWORD]) == 2)
+       if (getpassword(password, _("Enter the 'root' user password. Login as this user for commandline access.")) == 2)
                return 0;
        
        snprintf(commandstring, STRING_SIZE,
                "/bin/echo 'root:%s' | /usr/sbin/chpasswd", password);
-       if (runhiddencommandwithstatus(commandstring, ctr[TR_SETTING_ROOT_PASSWORD]))
-       {
-               errorbox(ctr[TR_PROBLEM_SETTING_ROOT_PASSWORD]);
+       if (runhiddencommandwithstatus(commandstring, _("Setting password"), _("Setting 'root' password...."), NULL)) {
+               errorbox(_("Problem setting 'root' password."));
                return 0;
        }
        
@@ -49,16 +50,16 @@ int handleadminpassword(void)
        char message[1000];
                
        /* web interface admin password. */
-       sprintf(message, ctr[TR_ENTER_ADMIN_PASSWORD], NAME, NAME);
+       sprintf(message, _("Enter %s 'admin' user password. "
+               "This is the user to use for logging into the %s web administration pages."), NAME, NAME);
        if (getpassword(password, message) == 2)
                return 0;
        
        snprintf(commandstring, STRING_SIZE,
                "/usr/sbin/htpasswd -c -m -b " CONFIG_ROOT "/auth/users admin '%s'", password);
-       sprintf(message, ctr[TR_SETTING_ADMIN_PASSWORD], NAME);
-       if (runhiddencommandwithstatus(commandstring, message))
-       {
-               sprintf(message, ctr[TR_PROBLEM_SETTING_ADMIN_PASSWORD], NAME);
+       sprintf(message, _("Setting %s 'admin' user password..."), NAME);
+       if (runhiddencommandwithstatus(commandstring, _("Setting password"), message, NULL)) {
+               sprintf(message, _("Problem setting %s 'admin' user password."), NAME);
                errorbox(message);
                return 0;
        }
@@ -72,8 +73,8 @@ int getpassword(char *password, char *text)
        char *values[] = {      NULL, NULL, NULL };     /* pointers for the values. */
        struct newtWinEntry entries[] =
        { 
-               { ctr[TR_PASSWORD_PROMPT], &values[0], 2 },
-               { ctr[TR_AGAIN_PROMPT], &values[1], 2 },
+               { _("Password:"), &values[0], 2 },
+               { _("Again:"), &values[1], 2 },
                { NULL, NULL, 0 }
        };
        char title[STRING_SIZE];
@@ -83,29 +84,29 @@ int getpassword(char *password, char *text)
        do
        {
                done = 1;
-               sprintf (title, "%s %s - %s", NAME, VERSION, SLOGAN);
+               sprintf (title, "%s - %s", NAME, SLOGAN);
                rc = newtWinEntries(title, text,
-                       65, 5, 5, 50, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);
+                       65, 5, 5, 50, entries, _("OK"), _("Cancel"), NULL);
 
                if (rc != 2)
                {
                        if (strlen(values[0]) == 0 || strlen(values[1]) == 0)
                        {
-                               errorbox(ctr[TR_PASSWORD_CANNOT_BE_BLANK]);
+                               errorbox(_("Password cannot be blank."));
                                done = 0;
                                strcpy(values[0], "");
                                strcpy(values[1], "");
                        }
                        else if (strcmp(values[0], values[1]) != 0)
                        {
-                               errorbox(ctr[TR_PASSWORDS_DO_NOT_MATCH]);
+                               errorbox(_("Passwords do not match."));
                                done = 0;
                                strcpy(values[0], "");
                                strcpy(values[1], "");
                        }
                        else if (strchr(values[0], ' '))
                        {
-                               errorbox(ctr[TR_PASSWORD_CANNOT_CONTAIN_SPACES]);
+                               errorbox(_("Password cannot contain spaces."));
                                done = 0;
                                strcpy(values[0], "");
                                strcpy(values[1], "");
diff --git a/src/setup/po/LINGUAS b/src/setup/po/LINGUAS
new file mode 100644 (file)
index 0000000..7673daa
--- /dev/null
@@ -0,0 +1 @@
+de
diff --git a/src/setup/po/Makevars b/src/setup/po/Makevars
new file mode 100644 (file)
index 0000000..cf8c600
--- /dev/null
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = The IPFire Project (www.ipfire.org)
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/src/setup/po/POTFILES.in b/src/setup/po/POTFILES.in
new file mode 100644 (file)
index 0000000..675adda
--- /dev/null
@@ -0,0 +1,11 @@
+dhcp.c
+domainname.c
+hostname.c
+keymap.c
+main.c
+misc.c
+netstuff.c
+networking.c
+passwords.c
+setup.h
+timezone.c
diff --git a/src/setup/po/ar.po b/src/setup/po/ar.po
new file mode 100644 (file)
index 0000000..a3b9a80
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Arabic (http://www.transifex.com/projects/p/ipfire/language/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/ca.po b/src/setup/po/ca.po
new file mode 100644 (file)
index 0000000..20dd073
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Catalan (http://www.transifex.com/projects/p/ipfire/language/ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/cs_CZ.po b/src/setup/po/cs_CZ.po
new file mode 100644 (file)
index 0000000..1a3a7d6
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/ipfire/language/cs_CZ/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs_CZ\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/da.po b/src/setup/po/da.po
new file mode 100644 (file)
index 0000000..7c696e5
--- /dev/null
@@ -0,0 +1,585 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Henrik Simonsen <cybermaze@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/ipfire/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr "Start adresse:"
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr "Slut adresse:"
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr "Primær DNS:"
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr "Sekundær DNS:"
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr "Standard udløbstid (minutter):"
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr "Maksimal udløbstid (minutter):"
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr "Domæne efternavn:"
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr "Kan ikke åbne filen med indstillinger"
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr "DHCP server konfiguration"
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr "Konfigurer DHCP serveren ved at angive indstillingerne."
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr "Aktiveret"
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr "OK"
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr "Annuller"
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr "Følgende felter er ugyldige:\n\n"
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr "Start adresse"
+
+#: dhcp.c:165
+msgid "End address"
+msgstr "Slut adresse"
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr "Primær DNS"
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr "Sekundær DNS"
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr "Standard udløbstid"
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr "Maks. udløbstid"
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr "Domæne navn"
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr "Indtast domæne navn"
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr "Domæne navn må ikke være tomt."
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr "Domæne navn må ikke indeholde mellemrum."
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr "Domæne navn må kun indeholde bogstaver, tal, bindestreger og punktummer."
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr "Værtsnavn"
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr "Indtast computerens værtsnavn."
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr "Værtsnavn må ikke være tomt."
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr "Værtsnavn må ikke indeholde mellemrum."
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr "Værtsnavn må kun indeholde bogstaver, tal og bindestreger."
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr "Tastaturlayout"
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr "Vælg dit tastatur layout fra listen."
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr "Tidszone"
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr "Netværk"
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr "ISDN"
+
+#: main.c:73
+msgid "'root' password"
+msgstr "'root' adgangskode"
+
+#: main.c:74
+msgid "'admin' password"
+msgstr "'admin' adgangskode"
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr "<Tab>/<Alt-Tab> mellem elementer   |  <Space> vælger"
+
+#: main.c:97
+msgid "Section menu"
+msgstr "Afsnitsmenu"
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr "Vælg det element du vil konfigurere."
+
+#: main.c:99
+msgid "Quit"
+msgstr "Afslut"
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr "Opsætningen er færdig."
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr "Advarsel"
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr "Første opsætning blev ikke færdiggjort. Du skal færdiggøre opsætningen ved at køre setup igen fra kommandoprompten."
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr "Kunne ikke gemme %s/main/hostname.conf"
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr "Kunne ikke åbne hosts filen."
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr "Kunne ikke gemme /etc/hosts."
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr "Kunne ikke gemme /etc/hosts.deny."
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr "Kunne ikke gemme /etc/hosts.allow."
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr "Kunne ikke opsætte værtsnavn."
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr "Skanner og konfigurerer ISDN enheder."
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr "Kunne ikke skanne for ISDN enheder."
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr "Grænseflade - %s"
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr "Indtast IP adresse information for grænseflade %s."
+
+#: netstuff.c:103
+msgid "Static"
+msgstr "Statisk"
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr "DHCP"
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr "PPP OPKALD (PPPoE, modem, ATM ...)"
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr "DHCP værtsnavn:"
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr "Tving DHCP MTU:"
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr "IP adresse:"
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr "Undernetmaske:"
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr "Følgende felter er ugyldige:"
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr "IP adresse"
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr "Undernetmaske"
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr "DHCP værtsnavn"
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr "Frakobl"
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr "Vælg venligst et netværkskort til følgende grænseflade - %s."
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr "Udvidet Netværks Menu"
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr "Vælg"
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr "Identificer"
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr "Enhedsidentifikation"
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr "Lyset på den valg port skulle nu blinke i 10 sekunder..."
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr "Identifikation er ikke understøttet af denne enhed."
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr "Der er ikke nogle ledige enheder på dit system."
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr "Vil du virkelig fjerne den tilkoblede %s grænseflade?"
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr "Vælg netværksdriver"
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr "Vælg yderligere modul parametre"
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr "Indlæser modul..."
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr "Kunne ikke indlæse driver modul."
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr "Modul navn kan ikke være tomt."
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr "Stopper netværk..."
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr "Genstarter netværk..."
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr "Ingen GRØN grænseflade opsat."
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr "Mangler IP adresse på GRØN."
+
+#: networking.c:163
+msgid "Error"
+msgstr "Fejl"
+
+#: networking.c:163
+msgid "Ignore"
+msgstr "Ignorer"
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr "Ingen RØD grænseflade opsat."
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr "Mangler IP adresse på RØD."
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr "Ingen ORANGE grænseflade opsat."
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr "Mangler IP adresse på ORANGE."
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr "Ingen BLÅ grænseflade opsat."
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr "Mangler IP adresse på BLÅ."
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr "Mangler DNS."
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr "Mangler Default Gateway."
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr "Type af netværksopsætning"
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr "Drivere og kort tildeling"
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr "Adresseindstillinger"
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr "DNS og Gateway indstillinger"
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr "Når opsætningen er færdig, er det nødvendigt at genstarte netværket."
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr "Netværksopsætningsmenu"
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr "Færdig"
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr "Vælg netværksopsætningen for %s. De følgende typer af opsætninger bestemmer hvilke grænseflader der vil få tilknyttet en ethernet enhed. Hvis du ændrer typen, skal netværket genstartes, og du skal opsætte netværket med drivere og enheder igen."
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr "Der mangler netværkskort til dit valg.\n\nKræver: %d - Tilgængelige: %d\n"
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr "Konfigurer netværksdrivere og hvilket kort hver grænseflade er tilknyttet. Den nuværende konfiguration er:\n\n"
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr "Vil du ændre disse indstillinger?"
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr "Genstarter ikke-lokalt netværk..."
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr "Vælg den grænseflade du ønsker at ændre.\n\n"
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr "Tilknyttede kort"
+
+#: networking.c:520
+msgid "Remove"
+msgstr "Fjern"
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr "Hvis du ændrer denne IP adresse, og du anvender fjern adgang, vil forbindelsen til %s blive brudt, så du må oprette forbindelse igen til den nye IP. Dette er risikabelt og bør kun gøres, hvis du har adgang til den fysiske computer, hvis noget går galt."
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr "Vælg den grænseflade du ønsker at ændre."
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr "Standard gateway:"
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr "Indtast DNS og gateway information. Disse indstillinger anvendes kun med statisk IP (og DHCP hvis DNS angivet) på RØD grænseflade."
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr "Standard gateway"
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr "Sekundær DNS angivet uden Primær DNS"
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr "Indtast 'root' adgangskode. Log ind som denne bruger for adgang til kommandoprompt."
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr "Opsæt adgangskode"
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr "Opsæt 'root' adgangskode..."
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr "Problem ved opsætning af 'root' adgangskode."
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr "Indtast %s 'admin' adgangskode. Denne bruger bruges til at logge ind på %s web admin sider."
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr "Opsætter %s 'admin' adgangskode..."
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr "Problem ved opsætning af %s 'admin' adgangskode."
+
+#: passwords.c:76
+msgid "Password:"
+msgstr "Adgangskode:"
+
+#: passwords.c:77
+msgid "Again:"
+msgstr "Igen:"
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr "Adgangskode kan ikke være tom."
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr "Adgangskoderne er ikke ens."
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr "Adgangskoder kan ikke indeholde mellemrum."
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr "Vælg den tidszone du er i på listen."
diff --git a/src/setup/po/de.po b/src/setup/po/de.po
new file mode 100644 (file)
index 0000000..b1d7d3a
--- /dev/null
@@ -0,0 +1,586 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Michael Tremer <michael.tremer@ipfire.org>, 2014
+# Stefan Schantl <stefan.schantl@ipfire.org>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 18:01+0000\n"
+"Last-Translator: Stefan Schantl <stefan.schantl@ipfire.org>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/ipfire/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr "Startadresse:"
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr "Endadresse:"
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr "Primärer DNS:"
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr "Sekundärer DNS:"
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr "Vorgegebene Gültigkeitsdauer (min):"
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr "Maximale Gültigkeitsdauer (min):"
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr "Domänenname:"
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr "Settings-Datei konnte nicht geöffnet werden"
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr "DHCP-Serverkonfiguration"
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr "Konfigurieren Sie den DHCP-Server durch Eingabe der Einstellungen:"
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr "OK"
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr "Die folgenden Eingaben sind ungültig:\n\n"
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr "Startadresse"
+
+#: dhcp.c:165
+msgid "End address"
+msgstr "Endadresse"
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr "Primärer DNS"
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr "Sekundärer DNS"
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr "Vorgegebene Gültigkeitsdauer"
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr "Maximale Gültigkeitsdauer"
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr "Domänenname"
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr "Bitte geben Sie den Domänennamen ein"
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr "Der Domänenname darf nicht leer sein."
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr "Der Domänenname darf keine Leerzeichen enthalten."
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr "Der Domänenname darf nur Buchstaben, Ziffern, Bindestriche oder Punkte enthalten."
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr "Hostname"
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr "Bitte geben Sie den Hostname der Maschine ein."
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr "Der Hostname darf nicht leer sein."
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr "Der Hostname darf keine Leerzeichen enthalten."
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr "Der Hostname darf nur Buchstaben, Ziffern oder Bindestriche enthalten."
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr "Tastaturbelegung"
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr "Wählen Sie aus dieser Liste den Tastatur-Typ aus, den Sie benutzen."
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr "Zeitzone"
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr "Netzwerk"
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr "ISDN"
+
+#: main.c:73
+msgid "'root' password"
+msgstr "'root'-Passwort"
+
+#: main.c:74
+msgid "'admin' password"
+msgstr "'admin'-Passwort"
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr "<Tab>/<Alt-Tab> wechselt die Auswahl | <Space> wählt aus"
+
+#: main.c:97
+msgid "Section menu"
+msgstr "Hauptmenü"
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr "Wählen Sie den Bereich aus, den Sie konfigurieren möchten."
+
+#: main.c:99
+msgid "Quit"
+msgstr "Beenden"
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr "Das Setup ist jetzt fertiggestellt."
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr "Warnung"
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr "Das erste Setup wurde nicht vollständig durchgeführt. Sie müssen Setup vollständig beenden; dies können Sie durch Ausführen von Setup in der Shell nachholen."
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr "Schreiben von %s/main/hostname.conf fehlgeschlagen."
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr "Öffnen der primären hosts-Datei fehlgeschlagen."
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr "Schreiben von /etc/hosts fehlgeschlagen."
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr "Schreiben von /etc/hosts.deny fehlgeschlagen."
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr "Schreiben von /etc/hosts.allow fehlgeschlagen."
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr "Kann Hostnamen nicht setzen."
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr "Suche und konfiguriere ISDN Geräte."
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr "Konnte ISDN Scan nicht durchführen."
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr "Interface - %s"
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr "Geben Sie die IP-Adressinformationen für die folgende Schnittstelle ein - %s."
+
+#: netstuff.c:103
+msgid "Static"
+msgstr "Statisch"
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr "DHCP"
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr "PPP-Einwahl (PPPoE, Modem, ATM...)"
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr "DHCP-Hostname:"
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr "DHCP MTU erzwingen:"
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr "IP-Adresse:"
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr "Netzmaske:"
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr "Die folgenden Felder sind ungültig:"
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr "IP-Adresse"
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr "Netzmaske"
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr "DHCP-Hostname"
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr "Entfernen"
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr "Bitte wählen Sie eine Netzwerkkarte für das folgende Interface aus - %s."
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr "Erweitertes Netzwerkmenü"
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr "Auswählen"
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr "Identifizieren"
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr "Device-Identifizierung"
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr "Der ausgewählte Port sollte nun für 10 Sekunden blinken..."
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr "Dieser Netzwerkport unterstützt die Identifikation leider nicht."
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr "Keine noch nicht zugewiesenen Schnittstellen auf dem System vorhanden."
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr "Möchten Sie die ausgewählte Schnittstelle %s wirklich entfernen?"
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr "Kann die Netzwerkkarte nicht automatisch erkennen. Geben Sie den Modulnamen und eventuelle Parameter für die Netzwerkkarte an."
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr "Optionale Modulparameter"
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr "Lade Module..."
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr "Das Laden des Treibermoduls schlug fehl."
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr "Der Modulname darf nicht leer sein."
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr "Stoppe Netzwerk..."
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr "Starte Netzwerk neu..."
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr "Keine GRÜNE Schnittstelle zugewiesen."
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr "Fehlende IP auf der grünen Schnittstelle!"
+
+#: networking.c:163
+msgid "Error"
+msgstr "Error"
+
+#: networking.c:163
+msgid "Ignore"
+msgstr "Ignorieren"
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr "Keine rote Schnittstelle zugewiesen."
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr "Fehlende IP auf der roten Schnittstelle!"
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr "Keine orange Schnittstelle zugewiesen."
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr "Fehlende IP auf der orangen Schnittstelle!"
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr "Keine blaue Schnittstelle zugewiesen."
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr "Fehlende IP auf der blauen Schnittstelle!"
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr "Fehlende DNS Information."
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr "Fehlender Standardgateway."
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr "Typ der Netzwerkkonfiguration"
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr "Netzwerkkartenzuordnungen"
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr "Adresseinstellungen"
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr "DNS- und Gatewayeinstellungen"
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr "Nach Abschluss der Konfiguration muss das Netzwerk neu gestartet werden."
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr "Aktuelle Konfiguration: %s\n\n%s"
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr "Netzwerkkonfigurationsmenü"
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr "Fertig"
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr "Wählen Sie die Netzwerkkonfiguration für %s aus. Die folgenden Konfigurationstypen listen diejenigen Schnittstellen auf, die am Ethernet angeschlossen sind. Wenn Sie diese Einstellung ändern, muss das Netzwerk neu gestartet werden und Sie müssen die Netzwerktreiber neu zuweisen."
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr "Nicht genügend Schnittstellen für Ihre Auswahl vorhanden.\n\nBenötigt: %d - Vorhanden: %d\n"
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr "Konfigurieren Sie die Netzwerktreiber und geben Sie an, welcher Schnittstelle jede Karte zugewiesen ist. Die aktuelle Konfiguration ist wie folgt:\n\n"
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr "Möchten Sie diese Einstellungen ändern?"
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr "Starte Nicht-Lokale Netzwerke neu..."
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr "Wählen Sie die Schnittstelle aus, die Sie konfigurieren möchten.\n\n"
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr "Zugewiesene Netzwerkkarten"
+
+#: networking.c:520
+msgid "Remove"
+msgstr "Entfernen"
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr "Wenn Sie diese IP-Adresse ändern, während Sie über den Fernwartungszugang zugreifen, wird die Verbindung zum %s-Rechner abbrechen. Sie müssen dann eine Verbindung zur neuen IP-Adresse aufbauen. Dies ist ein riskanter Vorgang, der nur versucht werden sollte, wenn Sie physikalischen Zugriff auf den Rechner haben, für den Fall, dass etwas schief geht."
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr "Wählen Sie die Schnittstelle aus, die Sie neu konfigurieren möchten."
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr "Standard-Gateway:"
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr "Geben Sie die DNS- und Gateway-Informationen ein. Diese Einstellungen werden nur bei einer statischen IP an der ROTEN Schnittstelle benutzt (und DHCP, falls DNS eingetragen wurde)."
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr "Standard-Gateway"
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr "Sekundären DNS angegeben ohne primären DNS"
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr "Geben Sie das Passwort für den Benutzer 'root' ein. Melden Sie sich als dieser Benutzer an, um Zugriff auf die Befehlszeile zu erhalten."
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr "Setze das Passwort"
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr "Setze 'root'-Passwort...."
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr "Setzen des 'root'-Passworts fehlgeschlagen."
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr "Geben Sie das Passwort für den %s-Administrator 'admin' ein. Das ist der Benutzer, mit dem Sie sich an den %s-Webadministrationsseiten anmelden."
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr "Setze %s 'admin'-Passwort...."
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr "Setzen des %s 'admin'-Passworts fehlgeschlagen."
+
+#: passwords.c:76
+msgid "Password:"
+msgstr "Passwort:"
+
+#: passwords.c:77
+msgid "Again:"
+msgstr "Wiederholung:"
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr "Das Passwort darf nicht leer sein."
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr "Die Passwörter stimmen nicht überein."
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr "Das Passwort darf keine Leerzeichen enthalten."
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr "Bitte wählen Sie die Zeitzone in der Sie sich befinden aus dem untenstehenden Menü aus."
diff --git a/src/setup/po/el_GR.po b/src/setup/po/el_GR.po
new file mode 100644 (file)
index 0000000..3d4d211
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Greek (Greece) (http://www.transifex.com/projects/p/ipfire/language/el_GR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: el_GR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/es.po b/src/setup/po/es.po
new file mode 100644 (file)
index 0000000..53fa0b3
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/ipfire/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/fa.po b/src/setup/po/fa.po
new file mode 100644 (file)
index 0000000..2e2adc4
--- /dev/null
@@ -0,0 +1,585 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Khalil Delavaran <khalil.delavaran@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/ipfire/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr "آغاز آدرس:"
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr "پایان آدرس:"
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr "نخستین DNS:"
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr "دومین DNS:"
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr "اجاره پیش پندار (دقیقه):"
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr "بیشینه اجاره (دقیقه):"
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr "پسوند نام دامنه:"
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr "پیکربندی سرور DHCP"
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr "پویا شد"
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr "بله"
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr "نمی خواهم"
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr "آغاز آدرس"
+
+#: dhcp.c:165
+msgid "End address"
+msgstr "پایان آدرس"
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr "نخستین DNS"
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr "دومین DNS"
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr "مدت اجاره پیش پندار"
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr "بیشینه مدت پیش پندار"
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr "نام دامنه"
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr "نام دامین را بنویسید"
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr "نام دامنه نمی تواند تهی باشد."
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr "نام دامنه نمی تواند فاصله داشته باشد."
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr "نام هاست"
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr "نام هاست ماشین ها را بنویسید."
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr "نام هاست نمی تواند تهی باشد."
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr "نام هاست نمیتواند فاصله داشته باشد."
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr "ISDN"
+
+#: main.c:73
+msgid "'root' password"
+msgstr "گذر واژه 'root'"
+
+#: main.c:74
+msgid "'admin' password"
+msgstr "گذر واژه 'admin'"
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr "برون رفت"
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr "برپا سازی به پایان رسید."
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr "گوشزد"
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr "ایستا"
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr "DHCP"
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr "شماره گیری PPP (PPOE, modem, ATM ...)"
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr "نام هاست DHCP:"
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr "آدرس IP:"
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr "ماسک شبکه:"
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr "آدرس IP"
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr "ماسک شبکه"
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr "نام هاست DHCP"
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr "گزینش"
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr "گزینش راه انداز شبکه"
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr "ایراد"
+
+#: networking.c:163
+msgid "Ignore"
+msgstr "نادیده گرفتن"
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr "پیکربندی آدرس"
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr "پایان"
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr "پاک کردن"
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr "Gateway پیش پندار:"
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr "Gateway پیش پندار"
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr "پیکربندی گذر واژه"
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr "پیکربندی گذر واژه 'root'...."
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr "ایراد در پیکربندی گذواژه 'root'."
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr "پیکربندی %s 'admin' گذر واژه کاربر..."
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr "گذر واژه:"
+
+#: passwords.c:77
+msgid "Again:"
+msgstr "دوباره:"
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr "گذر واژه نمی تواند خالی باشد."
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr "گذر واژه ها یکسان نیستند."
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr "در گذر واژه نمی توان فاصله گذاشت."
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/fr.po b/src/setup/po/fr.po
new file mode 100644 (file)
index 0000000..914095d
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/ipfire/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/hu.po b/src/setup/po/hu.po
new file mode 100644 (file)
index 0000000..3d71983
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Hungarian (http://www.transifex.com/projects/p/ipfire/language/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/id.po b/src/setup/po/id.po
new file mode 100644 (file)
index 0000000..89c6c58
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Indonesian (http://www.transifex.com/projects/p/ipfire/language/id/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: id\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/it.po b/src/setup/po/it.po
new file mode 100644 (file)
index 0000000..8f14b37
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Italian (http://www.transifex.com/projects/p/ipfire/language/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/ja.po b/src/setup/po/ja.po
new file mode 100644 (file)
index 0000000..69c24c1
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Japanese (http://www.transifex.com/projects/p/ipfire/language/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/km_KH.po b/src/setup/po/km_KH.po
new file mode 100644 (file)
index 0000000..4d5c100
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Khmer (Cambodia) (http://www.transifex.com/projects/p/ipfire/language/km_KH/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: km_KH\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/nl.po b/src/setup/po/nl.po
new file mode 100644 (file)
index 0000000..18d9512
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Dutch (http://www.transifex.com/projects/p/ipfire/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/pl.po b/src/setup/po/pl.po
new file mode 100644 (file)
index 0000000..607394a
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/ipfire/language/pl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/pt_BR.po b/src/setup/po/pt_BR.po
new file mode 100644 (file)
index 0000000..a16955b
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/ipfire/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/pt_PT.po b/src/setup/po/pt_PT.po
new file mode 100644 (file)
index 0000000..f75c591
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/ipfire/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/ro_RO.po b/src/setup/po/ro_RO.po
new file mode 100644 (file)
index 0000000..e85d2f7
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/ipfire/language/ro_RO/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ro_RO\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/ru.po b/src/setup/po/ru.po
new file mode 100644 (file)
index 0000000..34b1ac4
--- /dev/null
@@ -0,0 +1,585 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# bubnov_pi <ipfire@bubnov.su>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Russian (http://www.transifex.com/projects/p/ipfire/language/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr "Первый адрес:"
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr "Последний адрес:"
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr "Первичный DNS:"
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr "Вторичный DNS:"
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr "Аренда по умолчанию (минут):"
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr "Максимальная аренда (минут):"
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr "Суффикс доменного имени:"
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr "Невозможно открыть файл настроек"
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr "Конфигурация сервера DHCP"
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr "Настройте сервер DHCP, указав необходимые настройки."
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr "Включено"
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr "ОК"
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr "Отмена"
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr "Следующие поля некорректные:\n\n"
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr "Первый адрес"
+
+#: dhcp.c:165
+msgid "End address"
+msgstr "Последний адрес"
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr "Первичный DNS"
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr "Вторичный DNS"
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr "Аренда по умолчанию"
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr "Максимальная аренда (минут)"
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr "Имя домена"
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr "Введите имя домена"
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr "Имя домена не может быть пустым."
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr "Имя домена не может содержать пробелов."
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr "Доменное имя может содержать только буквы, цифры, дефисы и точки."
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr "Имя узла"
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr "Введите имя машины."
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr "Имя узла не может быть пустым."
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr "Имя узла не может содержать пробелы."
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr "Имя узла может содержать только буквы, цифры и дефисы."
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr "Раскладка клавиатуры"
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr "Выберите тип используемой клавиатуры из списка ниже."
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr "Часовой пояс"
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr "Сеть"
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr "ISDN"
+
+#: main.c:73
+msgid "'root' password"
+msgstr "Пароль 'root'"
+
+#: main.c:74
+msgid "'admin' password"
+msgstr "Пароль 'admin'"
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr "<Tab>/<Alt-Tab> переход между элементами   |  <Пробел> выбор"
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/sk.po b/src/setup/po/sk.po
new file mode 100644 (file)
index 0000000..8b5944e
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Slovak (http://www.transifex.com/projects/p/ipfire/language/sk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/sq.po b/src/setup/po/sq.po
new file mode 100644 (file)
index 0000000..4378e9d
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Albanian (http://www.transifex.com/projects/p/ipfire/language/sq/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sq\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/sv.po b/src/setup/po/sv.po
new file mode 100644 (file)
index 0000000..a2acfe3
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/ipfire/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/th.po b/src/setup/po/th.po
new file mode 100644 (file)
index 0000000..ad29452
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Thai (http://www.transifex.com/projects/p/ipfire/language/th/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: th\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/tk.po b/src/setup/po/tk.po
new file mode 100644 (file)
index 0000000..073e06a
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Turkmen (http://www.transifex.com/projects/p/ipfire/language/tk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/tr.po b/src/setup/po/tr.po
new file mode 100644 (file)
index 0000000..758a66e
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/ipfire/language/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/uk.po b/src/setup/po/uk.po
new file mode 100644 (file)
index 0000000..afcfa30
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Ukrainian (http://www.transifex.com/projects/p/ipfire/language/uk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uk\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/uz@Latn.po b/src/setup/po/uz@Latn.po
new file mode 100644 (file)
index 0000000..9044283
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Uzbek (Latin) (http://www.transifex.com/projects/p/ipfire/language/uz@Latn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uz@Latn\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/vi.po b/src/setup/po/vi.po
new file mode 100644 (file)
index 0000000..4d2457e
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Vietnamese (http://www.transifex.com/projects/p/ipfire/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/po/zh.po b/src/setup/po/zh.po
new file mode 100644 (file)
index 0000000..8b7faba
--- /dev/null
@@ -0,0 +1,584 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-21 15:12+0000\n"
+"PO-Revision-Date: 2014-08-21 15:13+0000\n"
+"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"Language-Team: Chinese (http://www.transifex.com/projects/p/ipfire/language/zh/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: dhcp.c:50
+msgid "Start address:"
+msgstr ""
+
+#: dhcp.c:51
+msgid "End address:"
+msgstr ""
+
+#: dhcp.c:52 networking.c:717
+msgid "Primary DNS:"
+msgstr ""
+
+#: dhcp.c:53 networking.c:723
+msgid "Secondary DNS:"
+msgstr ""
+
+#: dhcp.c:54
+msgid "Default lease (mins):"
+msgstr ""
+
+#: dhcp.c:55
+msgid "Max lease (mins):"
+msgstr ""
+
+#: dhcp.c:56
+msgid "Domain name suffix:"
+msgstr ""
+
+#: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
+#: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
+#: networking.c:134 networking.c:255 networking.c:291 networking.c:346
+#: networking.c:442 networking.c:552 networking.c:603 networking.c:610
+#: networking.c:713 timezone.c:63
+msgid "Unable to open settings file"
+msgstr ""
+
+#: dhcp.c:111
+msgid "DHCP server configuration"
+msgstr ""
+
+#: dhcp.c:116
+msgid "Configure the DHCP server by entering the settings information."
+msgstr ""
+
+#: dhcp.c:125
+msgid "Enabled"
+msgstr ""
+
+#: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
+#: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
+#: networking.c:269 networking.c:305 networking.c:409 networking.c:560
+#: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
+#: timezone.c:78
+msgid "OK"
+msgstr ""
+
+#: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
+#: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
+#: networking.c:410 networking.c:560 networking.c:653 networking.c:746
+#: passwords.c:89 timezone.c:78
+msgid "Cancel"
+msgstr ""
+
+#: dhcp.c:156
+msgid ""
+"The following fields are invalid:\n"
+"\n"
+msgstr ""
+
+#: dhcp.c:159
+msgid "Start address"
+msgstr ""
+
+#: dhcp.c:165
+msgid "End address"
+msgstr ""
+
+#: dhcp.c:173 networking.c:755
+msgid "Primary DNS"
+msgstr ""
+
+#: dhcp.c:182 networking.c:764
+msgid "Secondary DNS"
+msgstr ""
+
+#: dhcp.c:189
+msgid "Default lease time"
+msgstr ""
+
+#: dhcp.c:195
+msgid "Max. lease time"
+msgstr ""
+
+#: domainname.c:42 main.c:70
+msgid "Domain name"
+msgstr ""
+
+#: domainname.c:42
+msgid "Enter Domain name"
+msgstr ""
+
+#: domainname.c:48
+msgid "Domain name cannot be empty."
+msgstr ""
+
+#: domainname.c:50
+msgid "Domain name cannot contain spaces."
+msgstr ""
+
+#: domainname.c:53
+msgid "Domain name may only contain letters, numbers, hyphens and periods."
+msgstr ""
+
+#: hostname.c:46 main.c:69
+msgid "Hostname"
+msgstr ""
+
+#: hostname.c:46
+msgid "Enter the machine's hostname."
+msgstr ""
+
+#: hostname.c:53
+msgid "Hostname cannot be empty."
+msgstr ""
+
+#: hostname.c:55
+msgid "Hostname cannot contain spaces."
+msgstr ""
+
+#: hostname.c:58
+msgid "Hostname may only contain letters, numbers and hyphens."
+msgstr ""
+
+#: keymap.c:84 main.c:67
+msgid "Keyboard mapping"
+msgstr ""
+
+#: keymap.c:85
+msgid "Choose the type of keyboard you are using from the list below."
+msgstr ""
+
+#: main.c:68 timezone.c:77
+msgid "Timezone"
+msgstr ""
+
+#: main.c:71 networking.c:110 networking.c:115 networking.c:447
+msgid "Networking"
+msgstr ""
+
+#: main.c:72 misc.c:147
+msgid "ISDN"
+msgstr ""
+
+#: main.c:73
+msgid "'root' password"
+msgstr ""
+
+#: main.c:74
+msgid "'admin' password"
+msgstr ""
+
+#: main.c:90
+msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
+msgstr ""
+
+#: main.c:97
+msgid "Section menu"
+msgstr ""
+
+#: main.c:98
+msgid "Select the item you wish to configure."
+msgstr ""
+
+#: main.c:99
+msgid "Quit"
+msgstr ""
+
+#: main.c:172
+msgid "Setup is complete."
+msgstr ""
+
+#: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
+msgid "Warning"
+msgstr ""
+
+#: main.c:175
+msgid ""
+"Initial setup was not entirely complete. You must ensure that Setup is "
+"properly finished by running setup again at the shell."
+msgstr ""
+
+#: misc.c:62
+#, c-format
+msgid "Unable to write %s/main/hostname.conf"
+msgstr ""
+
+#: misc.c:71
+msgid "Unable to open main hosts file."
+msgstr ""
+
+#: misc.c:76
+msgid "Unable to write /etc/hosts."
+msgstr ""
+
+#: misc.c:117
+msgid "Unable to write /etc/hosts.deny."
+msgstr ""
+
+#: misc.c:125
+msgid "Unable to write /etc/hosts.allow."
+msgstr ""
+
+#: misc.c:136
+msgid "Unable to set hostname."
+msgstr ""
+
+#: misc.c:147
+msgid "Scanning and configuring ISDN devices."
+msgstr ""
+
+#: misc.c:148
+msgid "Unable to scan for ISDN devices."
+msgstr ""
+
+#: netstuff.c:86
+#, c-format
+msgid "Interface - %s"
+msgstr ""
+
+#: netstuff.c:91
+#, c-format
+msgid "Enter the IP address information for the %s interface."
+msgstr ""
+
+#: netstuff.c:103
+msgid "Static"
+msgstr ""
+
+#: netstuff.c:104
+msgid "DHCP"
+msgstr ""
+
+#: netstuff.c:105
+msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
+msgstr ""
+
+#: netstuff.c:113
+msgid "DHCP Hostname:"
+msgstr ""
+
+#: netstuff.c:115
+msgid "Force DHCP MTU:"
+msgstr ""
+
+#: netstuff.c:134
+msgid "IP address:"
+msgstr ""
+
+#: netstuff.c:146
+msgid "Network mask:"
+msgstr ""
+
+#: netstuff.c:173 networking.c:749
+msgid "The following fields are invalid:"
+msgstr ""
+
+#: netstuff.c:183
+msgid "IP address"
+msgstr ""
+
+#: netstuff.c:189
+msgid "Network mask"
+msgstr ""
+
+#: netstuff.c:198
+msgid "DHCP hostname"
+msgstr ""
+
+#: netstuff.c:396 netstuff.c:709
+msgid "Unset"
+msgstr ""
+
+#: netstuff.c:669
+#, c-format
+msgid "Please choose a networkcard for the following interface - %s."
+msgstr ""
+
+#: netstuff.c:672
+msgid "Extended Network Menu"
+msgstr ""
+
+#: netstuff.c:673 networking.c:520
+msgid "Select"
+msgstr ""
+
+#: netstuff.c:673
+msgid "Identify"
+msgstr ""
+
+#: netstuff.c:678
+msgid "Device Identification"
+msgstr ""
+
+#: netstuff.c:678
+msgid "The lights on the selected port should flash now for 10 seconds..."
+msgstr ""
+
+#: netstuff.c:679
+msgid "Identification is not supported by this interface."
+msgstr ""
+
+#: netstuff.c:691
+msgid "There are no unassigned interfaces on your system."
+msgstr ""
+
+#: netstuff.c:732
+#, c-format
+msgid "Do you really want to remove the assigned %s interface?"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Select network driver"
+msgstr ""
+
+#: netstuff.c:755
+msgid "Set additional module parameters"
+msgstr ""
+
+#: netstuff.c:762
+msgid "Loading module..."
+msgstr ""
+
+#: netstuff.c:777
+msgid "Unable to load driver module."
+msgstr ""
+
+#: netstuff.c:780
+msgid "Module name cannot be blank."
+msgstr ""
+
+#: networking.c:110
+msgid "Stopping network..."
+msgstr ""
+
+#: networking.c:115
+msgid "Restarting network..."
+msgstr ""
+
+#: networking.c:146
+msgid "No GREEN interface assigned."
+msgstr ""
+
+#: networking.c:152
+msgid "Missing an IP address on GREEN."
+msgstr ""
+
+#: networking.c:163
+msgid "Error"
+msgstr ""
+
+#: networking.c:163
+msgid "Ignore"
+msgstr ""
+
+#: networking.c:164
+msgid "No RED interface assigned."
+msgstr ""
+
+#: networking.c:173
+msgid "Missing an IP address on RED."
+msgstr ""
+
+#: networking.c:183
+msgid "No ORANGE interface assigned."
+msgstr ""
+
+#: networking.c:189
+msgid "Missing an IP address on ORANGE."
+msgstr ""
+
+#: networking.c:199
+msgid "No BLUE interface assigned."
+msgstr ""
+
+#: networking.c:205
+msgid "Missing an IP address on BLUE."
+msgstr ""
+
+#: networking.c:217
+msgid "Misssing DNS."
+msgstr ""
+
+#: networking.c:224
+msgid "Missing Default Gateway."
+msgstr ""
+
+#: networking.c:237 networking.c:304
+msgid "Network configuration type"
+msgstr ""
+
+#: networking.c:238 networking.c:409
+msgid "Drivers and card assignments"
+msgstr ""
+
+#: networking.c:239 networking.c:640
+msgid "Address settings"
+msgstr ""
+
+#: networking.c:240 networking.c:743
+msgid "DNS and Gateway settings"
+msgstr ""
+
+#: networking.c:260
+msgid "When configuration is complete, a network restart will be required."
+msgstr ""
+
+#: networking.c:267
+#, c-format
+msgid ""
+"Current config: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: networking.c:268
+msgid "Network configuration menu"
+msgstr ""
+
+#: networking.c:269 networking.c:520 networking.c:642
+msgid "Done"
+msgstr ""
+
+#: networking.c:300
+#, c-format
+msgid ""
+"Select the network configuration for %s. The following configuration types "
+"list those interfaces which have ethernet attached. If you change this "
+"setting, a network restart will be required, and you will have to "
+"reconfigure the network driver assignments."
+msgstr ""
+
+#: networking.c:307
+#, c-format
+msgid ""
+"Not enough netcards for your choice.\n"
+"\n"
+"Needed: %d - Available: %d\n"
+msgstr ""
+
+#: networking.c:359
+msgid ""
+"Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
+"\n"
+msgstr ""
+
+#: networking.c:408
+msgid "Do you wish to change these settings?"
+msgstr ""
+
+#: networking.c:447
+msgid "Restarting non-local network..."
+msgstr ""
+
+#: networking.c:464
+msgid ""
+"Please choose the interface you wish to change.\n"
+"\n"
+msgstr ""
+
+#: networking.c:519
+msgid "Assigned Cards"
+msgstr ""
+
+#: networking.c:520
+msgid "Remove"
+msgstr ""
+
+#: networking.c:556 networking.c:649
+#, c-format
+msgid ""
+"If you change this IP address, and you are logged in remotely, your "
+"connection to the %s machine will be broken, and you will have to reconnect "
+"on the new IP. This is a risky operation, and should only be attempted if "
+"you have physical access to the machine, should something go wrong."
+msgstr ""
+
+#: networking.c:641
+msgid "Select the interface you wish to reconfigure."
+msgstr ""
+
+#: networking.c:729
+msgid "Default gateway:"
+msgstr ""
+
+#: networking.c:744
+msgid ""
+"Enter the DNS and gateway information. These settings are used only with "
+"Static IP (and DHCP if DNS set) on the RED interface."
+msgstr ""
+
+#: networking.c:773
+msgid "Default gateway"
+msgstr ""
+
+#: networking.c:780
+msgid "Secondary DNS specified without a Primary DNS"
+msgstr ""
+
+#: passwords.c:33
+msgid ""
+"Enter the 'root' user password. Login as this user for commandline access."
+msgstr ""
+
+#: passwords.c:38 passwords.c:61
+msgid "Setting password"
+msgstr ""
+
+#: passwords.c:38
+msgid "Setting 'root' password...."
+msgstr ""
+
+#: passwords.c:39
+msgid "Problem setting 'root' password."
+msgstr ""
+
+#: passwords.c:53
+#, c-format
+msgid ""
+"Enter %s 'admin' user password. This is the user to use for logging into the"
+" %s web administration pages."
+msgstr ""
+
+#: passwords.c:60
+#, c-format
+msgid "Setting %s 'admin' user password..."
+msgstr ""
+
+#: passwords.c:62
+#, c-format
+msgid "Problem setting %s 'admin' user password."
+msgstr ""
+
+#: passwords.c:76
+msgid "Password:"
+msgstr ""
+
+#: passwords.c:77
+msgid "Again:"
+msgstr ""
+
+#: passwords.c:95
+msgid "Password cannot be blank."
+msgstr ""
+
+#: passwords.c:102
+msgid "Passwords do not match."
+msgstr ""
+
+#: passwords.c:109
+msgid "Password cannot contain spaces."
+msgstr ""
+
+#: timezone.c:77
+msgid "Choose the timezone you are in from the list below."
+msgstr ""
diff --git a/src/setup/setup.h b/src/setup/setup.h
new file mode 100644 (file)
index 0000000..388d2ed
--- /dev/null
@@ -0,0 +1,87 @@
+/* SmoothWall setup program.
+ *
+ * This program is distributed under the terms of the GNU General Public
+ * Licence.  See the file COPYING for details.
+ *
+ * (c) Lawrence Manning, 2001
+ * Main include file.
+ * 
+ * $Id: setup.h,v 1.4 2003/12/11 11:25:54 riddles Exp $
+ * 
+ */
+
+#include <newt.h>
+#include <libsmooth.h>
+
+/* hostname.c */
+int handlehostname(void);
+
+/* domainname.c */
+int handledomainname(void);
+
+/* networking.c */
+int handlenetworking(void);
+
+/* dhcp.c */
+int handledhcp(void);
+
+/* passwords.c */
+int handlerootpassword(void);
+int handlesetuppassword(void);
+int handleadminpassword(void);
+
+/* misc.c */
+int writehostsfiles(void);
+int handleisdn(void);
+
+/* keymap.c */
+int handlekeymap(void);
+
+/* timezone.c */
+int handletimezone(void);
+
+/* netstuff.c */
+#define ADDRESS 0
+#define NETADDRESS 1
+#define NETMASK 2
+#define DHCP 3
+#define NETCHANGE_TOTAL 4
+
+#define SCANNED_NICS "/var/ipfire/ethernet/scanned_nics"
+#define SYSDIR "/sys/class/net"
+
+#define _GREEN_CARD_ 0
+#define _RED_CARD_ 1
+#define _ORANGE_CARD_ 2
+#define _BLUE_CARD_ 3
+
+struct nic
+{
+       char driver[80];
+       char description[256];
+       char macaddr[20];
+       char nic[20];
+};
+
+struct knic
+{
+       char driver[80];
+       char description[256];
+       char macaddr[20];
+       char colour[20];
+};
+
+int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
+       char *defaultdhcphostname);
+int gettype(char *type);
+int setnetaddress(struct keyvalue *kv, char *colour);
+void networkdialogcallbacktype(newtComponent cm, void *data);
+int interfacecheck(struct keyvalue *kv, char *colour);
+int rename_nics(void);
+int init_knics(void);
+int create_udev(void);
+int scan_network_cards(void);
+int nicmenu(int colour);
+int clear_card_entry(int cards);
+int ask_clear_card_entry(int cards);
+int manualdriver(char *driver, char *driveroptions);
similarity index 90%
rename from src/install+setup/setup/timezone.c
rename to src/setup/timezone.c
index d0a848378b1ee7cdea515df9ae5bb96edb898c75..619ebf26ae53639bd8bf7f7f6674bb4d876c6fad 100644 (file)
  * 
  */
 
+// Translation
+#include <libintl.h>
+#define _(x) dgettext("setup", x)
+
 #include "setup.h"
  
 extern FILE *flog;
 extern char *mylog;
 
-extern char **ctr;
-
 extern int automode;
 
 #define MAX_FILENAMES 5000
@@ -58,7 +60,7 @@ int handletimezone(void)
        if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))
        {
                freekeyvalues(kv);
-               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);
+               errorbox(_("Unable to open settings file"));
                return 0;
        }       
        
@@ -72,8 +74,8 @@ int handletimezone(void)
                        choice = c;
        }
        
-       rc = newtWinMenu(ctr[TR_TIMEZONE], ctr[TR_TIMEZONE_LONG], 50, 5, 5, 6, displaynames, &choice,
-               ctr[TR_OK], ctr[TR_CANCEL], NULL);
+       rc = newtWinMenu(_("Timezone"), _("Choose the timezone you are in from the list below."),
+               50, 5, 5, 6, displaynames, &choice, _("OK"), _("Cancel"), NULL);
 
        strcpy(timezone, filenames[choice]);
        
index 794cea592389c272e589c361de9df57b303db254..81338dbdde7d288a1484f268c89a0779279c284e 100755 (executable)
@@ -26,17 +26,10 @@ if [ ! -d ./langs/ ]; then
 fi
 
 cat ./langs/de/cgi-bin/de.pl | grep \'.*\' | awk -F\' '{print $2}'| sort > /tmp/de_cgi-bin.$$
-cat ./langs/de/install/lang_de.c | grep TR_ | awk -F\  '{print $2}' > /tmp/de_install.$$
 
 for i in ./langs/en ./langs/fr ./langs/es ./langs/pl ./langs/ru ; do
     language=`echo "$i" | awk -F/  '{ print $3 }'`
 
-    echo "############################################################################"
-    echo "# Checking install/setup translations for language: ${language}                     #"
-    echo "############################################################################"
-    cat ./langs/${language}/install/lang_${language}.c | grep TR_ | awk -F\  '{print $2}' | \
-        diff /tmp/de_install.$$ - |  grep \<
-
     echo "############################################################################"
     echo "# Checking cgi-bin translations for language: ${language}                           #"
     echo "############################################################################"
@@ -45,7 +38,6 @@ for i in ./langs/en ./langs/fr ./langs/es ./langs/pl ./langs/ru ; do
 done
 
 rm -f /tmp/de_cgi-bin.$$
-rm -f /tmp/de_install.$$
 
 exit 0